package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-04.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum04 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {5,0,53,6,-101,12,-72,18,-12,24,23,31,-28,36,-66,42,53,48,-79,53,-15,58,-52,63,-104,68,-23,72,41,77,19,81,-113,84,-29,87,-67,90,109,93,-65,95,-98,97,68,99,-95,100,122,101,49,102,95,102,103,102,28,102,107,101,-116,100,79,99,-32,97,50,96,56,94,19,92,-72,89,47,87,-120,84,-94,81,-75,78,-94,75,117,72,67,69,-11,65,-82,62,91,59,14,56,-57,52,-116,49,87,46,60,43,58,40,75,37,-125,34,-55,31,46,29,-43,26,127,24,118,22,108,20,-106,18,-7,16,115,15,18,14,-7,12,-27,11,24,11,75,10,-91,9,68,9,-39,8,-75,8,120,8,93,8,116,8,120,8,-79,8,-57,8,-30,8,46,9,70,9,98,9,-103,9,-95,9,-65,9,-92,9,114,9,87,9,-16,8,-95,8,-4,7,70,7,-114,6,-115,5,-116,4,66,3,-54,1,101,0,-96,-2,-17,-4,-32,-6,-73,-8,-110,-10,39,-12,-97,-15,27,-17,93,-20,-93,-23,-67,-26,-66,-29,-42,-32,-63,-35,-58,-38,-95,-41,-115,-44,-123,-47,125,-50,-115,-53,-103,-56,-66,-59,5,-61,96,-64,-47,-67,120,-69,56,-71,40,-73,65,-75,-126,-77,1,-78,-88,-80,-116,-81,-91,-82,-6,-83,-123,-83,80,-83,75,-83,-112,-83,13,-82,-60,-82,-71,-81,-21,-80,72,-78,-24,-77,-77,-75,-61,-73,1,-70,89,-68,-9,-66,-100,-63,-116,-60,-104,-57,-89,-54,-15,-51,47,-47,-93,-44,39,-40,-109,-37,45,-33,-97,-30,64,-26,-43,-23,66,-19,-58,-16,58,-12,123,-9,-58,-6,-36,-3,-13,0,-10,3,-91,6,101,9,-47,11,71,14,-108,16,-115,18,-123,20,45,22,-42,23,85,25,-123,26,-80,27,-74,28,107,29,38,30,-107,30,13,31,99,31,113,31,-110,31,111,31,97,31,59,31,-23,30,-96,30,61,30,-30,29,-111,29,24,29,-64,28,83,28,10,28,-56,27,122,27,85,27,58,27,41,27,56,27,81,27,-110,27,-23,27,77,28,-38,28,123,29,61,30,31,31,12,32,30,33,71,34,-119,35,-25,36,81,38,-45,39,98,41,3,43,-80,44,106,46,36,48,-32,49,-93,51,97,53,24,55,-55,56,89,58,-7,59,106,61,-38,62,27,64,56,65,81,66,42,67,-37,67,127,68,-40,68,29,69,20,69,-42,68,-124,68,-34,67,27,67,-2,65,-90,64,56,63,112,61,-111,59,80,57,-39,54,74,52,104,49,115,46,39,43,-84,39,37,36,81,32,79,28,88,24,22,20,-36,15,102,11,-50,6,93,2,-88,-3,29,-7,94,-12,-91,-17,17,-21,102,-26,-28,-31,90,-35,-38,-40,-95,-44,92,-48,62,-52,99,-56,-111,-60,12,-63,-110,-67,87,-70,96,-73,-111,-76,11,-78,-83,-81,-120,-83,-66,-85,29,-86,-49,-88,-82,-89,-51,-90,60,-90,-31,-91,-47,-91,-13,-91,83,-90,-11,-90,-53,-89,-40,-88,38,-86,-99,-85,76,-83,33,-81,36,-79,83,-77,-97,-75,22,-72,-94,-70,82,-67,15,-64,-26,-62,-56,-59,-67,-56,-63,-53,-71,-50,-62,-47,-43,-44,-61,-41,-52,-38,-83,-35,-101,-32,-127,-29,55,-26,-8,-24,-120,-21,23,-18,-97,-16,-36,-14,55,-11,60,-9,92,-7,80,-5,18,-3,-42,-2,-128,0,-18,1,92,3,-106,4,-44,5,1,7,-15,7,-17,8,-74,9,-114,10,91,11,-17,11,-96,12,30,13,-69,13,82,14,-70,14,76,15,-80,15,62,16,-49,16,61,17,-40,17,122,18,-6,18,-79,19,70,20,18,21,-27,21,-89,22,-109,23,112,24,118,25,-111,26,-105,27,-58,28,-21,29,45,31,-122,32,-60,33,46,35,-108,36,-13,37,102,39,-56,40,66,42,-76,43,25,45,-123,46,-37,47,58,49,-124,50,-62,51,-18,52,12,54,22,55,11,56,-24,56,-86,57,86,58,-34,58,80,59,-99,59,-48,59,-47,59,-56,59,-123,59,53,59,-84,58,3,58,64,57,75,56,67,55,5,54,-93,52,54,51,-117,49,-29,47,-13,45,-9,43,-20,41,-75,39,96,37,18,35,-107,32,33,30,-124,27,-47,24,58,22,119,19,-50,16,2,14,48,11,-122,8,-70,5,24,3,91,0,-94,-3,38,-5,-126,-8,1,-10,-91,-13,72,-15,28,-17,-29,-20,-61,-22,-35,-24,-12,-26,68,-27,-112,-29,-11,-31,-101,-32,55,-33,26,-34,-19,-36,-23,-37,25,-37,66,-38,-82,-39,9,-39,-119,-40,53,-40,-32,-41,-100,-41,-115,-41,108,-41,-127,-41,-126,-41,-104,-41,-48,-41,-9,-41,67,-40,122,-40,-62,-40,18,-39,98,-39,-75,-39,3,-38,78,-38,-100,-38,-28,-38,34,-37,100,-37,-105,-37,-55,-37,-20,-37,15,-36,29,-36,50,-36,47,-36,47,-36,38,-36,7,-36,-14,-37,-57,-37,-95,-37,124,-37,61,-37,14,-37,-52,-38,-103,-38,108,-38,41,-38,1,-38,-36,-39,-85,-39,-108,-39,116,-39,117,-39,-121,-39,-119,-39}; }
	private static byte[] data1(){ return new byte[] {-68,-39,-36,-39,53,-38,-98,-38,0,-37,-106,-37,43,-36,-19,-36,-37,-35,-81,-34,-51,-33,6,-31,52,-30,-88,-29,14,-27,-73,-26,127,-24,57,-22,61,-20,44,-18,98,-16,-87,-14,-23,-12,95,-9,-51,-7,109,-4,33,-1,-67,1,-112,4,71,7,48,10,30,13,-18,15,-26,18,-38,21,-80,24,-94,27,111,30,80,33,35,36,-44,38,-121,41,24,44,-89,46,28,49,108,51,-81,53,-60,55,-46,57,-77,59,112,61,17,63,-112,64,-34,65,17,67,12,68,-12,68,-89,69,50,70,-102,70,-48,70,-31,70,-53,70,-122,70,34,70,-110,69,-39,68,-6,67,-3,66,-45,65,-118,64,41,63,-101,61,4,60,54,58,88,56,112,54,90,52,77,50,15,48,-61,45,-126,43,23,41,-68,38,67,36,-73,33,81,31,-68,28,75,26,-68,23,43,21,-65,18,58,16,-76,13,97,11,-23,8,-85,6,72,4,-3,1,-36,-1,-91,-3,-89,-5,-120,-7,-119,-9,-83,-11,-49,-13,22,-14,86,-16,-97,-18,32,-19,-114,-21,15,-22,-65,-24,98,-25,47,-26,-14,-28,-63,-29,-66,-30,-84,-31,-62,-32,-51,-33,-35,-34,33,-34,68,-35,-96,-36,-37,-37,42,-37,-102,-38,-11,-39,120,-39,-28,-40,94,-40,-17,-41,123,-41,3,-41,-81,-42,69,-42,-7,-43,-94,-43,80,-43,21,-43,-51,-44,-98,-44,100,-44,58,-44,21,-44,-6,-45,-29,-45,-43,-45,-47,-45,-48,-45,-32,-45,-10,-45,20,-44,66,-44,112,-44,-74,-44,4,-43,89,-43,-65,-43,44,-42,-81,-42,66,-41,-45,-41,-127,-40,48,-39,-7,-39,-39,-38,-85,-37,-87,-36,-81,-35,-79,-34,-41,-33,-12,-32,54,-30,-118,-29,-55,-28,59,-26,-113,-25,28,-23,-93,-22,40,-20,-58,-19,88,-17,13,-15,-54,-14,113,-12,59,-10,-25,-9,-65,-7,-110,-5,75,-3,38,-1,-3,0,-72,2,-115,4,65,6,16,8,-34,9,127,11,66,13,-41,14,-122,16,46,18,-90,19,58,21,-94,22,22,24,-118,25,-59,26,27,28,91,29,117,30,-103,31,-105,32,-99,33,-111,34,99,35,54,36,-22,36,-97,37,70,38,-55,38,80,39,-72,39,31,40,122,40,-76,40,-14,40,21,41,54,41,74,41,72,41,66,41,48,41,16,41,-26,40,-75,40,118,40,47,40,-29,39,-118,39,46,39,-57,38,85,38,-25,37,104,37,-19,36,100,36,-46,35,74,35,-83,34,11,34,116,33,-54,32,40,32,121,31,-73,30,17,30,74,29,-103,28,-53,27,-8,26,56,26,91,25,-110,24,-84,23,-69,22,-23,21,-22,20,-17,19,7,19,-5,17,9,17,-15,15,-47,14,-50,13,-92,12,-116,11,91,10,22,9,-14,7,-87,6,113,5,30,4,-71,2,121,1,13,0,-70,-2,74,-3,-52,-5,110,-6,-19,-8,99,-9,-2,-11,110,-12,1,-13,111,-15,-32,-17,108,-18,-36,-20,103,-21,-35,-23,80,-24,-28,-26,93,-27,-6,-29,126,-30,16,-31,-73,-33,84,-34,-3,-36,-69,-37,120,-38,73,-39,29,-40,-5,-42,-14,-43,-19,-44,-4,-45,22,-45,62,-46,-128,-47,-58,-48,44,-48,-108,-49,28,-49,-82,-50,90,-50,20,-50,-27,-51,-52,-51,-61,-51,-47,-51,-3,-51,42,-50,127,-50,-39,-50,83,-49,-24,-49,126,-48,57,-47,-3,-47,-38,-46,-36,-45,-51,-44,-13,-43,14,-41,84,-40,-85,-39,-4,-38,116,-36,-1,-35,124,-33,37,-31,-66,-30,-127,-28,78,-26,12,-24,-14,-23,-65,-21,-68,-19,-75,-17,-95,-15,-85,-13,-98,-11,-76,-9,-54,-7,-53,-5,-32,-3,4,0,-7,1,25,4,14,6,36,8,49,10,29,12,35,14,-3,15,-12,17,-34,19,-98,21,124,23,35,25,-25,26,-109,28,30,30,-78,31,31,33,-107,34,-7,35,54,37,121,38,-87,39,-77,40,-65,41,-94,42,-120,43,88,44,4,45,-82,45,50,46,-76,46,28,47,106,47,-87,47,-48,47,-22,47,-20,47,-36,47,-77,47,-124,47,51,47,-38,46,109,46,-23,45,91,45,-68,44,5,44,79,43,120,42,-103,41,-73,40,-75,39,-65,38,-90,37,-119,36,109,35,57,34,14,33,-58,31,-128,30,55,29,-26,27,-127,26,55,25,-52,23,124,22,9,21,-95,19,66,18,-41,16,124,15,12,14,-98,12,71,11,-29,9,-117,8,48,7,-60,5,-121,4,42,3,-45,1,-95,0,81,-1,41,-2,-26,-4,-88,-5,-110,-6,94,-7,80,-8,46,-9,10,-10,18,-11,-3,-13,11,-13,7,-14,3,-15,36,-16,48,-17,87,-18,114,-19,-120,-20,-57,-21,-22,-22,24,-22,95,-23,-105,-24,-25,-25,40,-25,109,-26,-49,-27,26,-27,-121,-28,-39,-29,64,-29,-81,-30,27,-30,-103,-31,10,-31,-121,-32,18,-32,-106,-33,38,-33,-67,-34,92,-34,-3,-35,-86,-35,85,-35,17,-35,-48,-36,-102,-36,105,-36,67,-36,34,-36,17,-36,2,-36,5,-36,14,-36,31,-36,65,-36,110,-36}; }
	private static byte[] data2(){ return new byte[] {-97,-36,-30,-36,43,-35,-121,-35,-13,-35,92,-34,-32,-34,97,-33,0,-32,-84,-32,80,-31,25,-30,-47,-30,-74,-29,-100,-28,-128,-27,-125,-26,121,-25,-106,-24,-72,-23,-49,-22,11,-20,74,-19,-128,-18,-48,-17,21,-15,117,-14,-30,-13,51,-11,-87,-10,5,-8,-125,-7,0,-5,105,-4,-24,-3,83,-1,-45,0,89,2,-71,3,61,5,-79,6,21,8,125,9,-38,10,56,12,-98,13,-38,14,45,16,90,17,-97,18,-50,19,-20,20,5,22,15,23,20,24,29,25,-8,25,-25,26,-80,27,-124,28,76,29,-14,29,-92,30,68,31,-51,31,88,32,-54,32,60,33,-90,33,-11,33,75,34,-122,34,-59,34,-10,34,27,35,53,35,76,35,84,35,91,35,84,35,70,35,50,35,22,35,-15,34,-52,34,-105,34,95,34,36,34,-34,33,-102,33,70,33,-21,32,-105,32,47,32,-45,31,91,31,-28,30,115,30,-21,29,94,29,-37,28,62,28,-79,27,3,27,84,26,-86,25,-18,24,52,24,100,23,-122,22,-73,21,-52,20,-21,19,-23,18,-34,17,-29,16,-61,15,-74,14,-127,13,71,12,24,11,-53,9,109,8,40,7,-71,5,95,4,-29,2,89,1,-21,-1,81,-2,-44,-4,47,-5,-114,-7,-9,-9,75,-10,-79,-12,-2,-14,73,-15,-84,-17,-9,-19,68,-20,-83,-22,0,-23,110,-25,-49,-27,52,-28,-70,-30,47,-31,-54,-33,83,-34,-11,-36,-84,-37,105,-38,62,-39,28,-40,7,-41,21,-42,41,-43,92,-44,-101,-45,-15,-46,101,-46,-26,-47,-121,-47,58,-47,13,-47,-13,-48,-15,-48,13,-47,59,-47,-118,-47,-23,-47,106,-46,-4,-46,-89,-45,106,-44,63,-43,53,-42,58,-41,79,-40,124,-39,-61,-38,10,-36,114,-35,-40,-34,93,-32,-18,-31,125,-29,34,-27,-57,-26,122,-24,65,-22,-16,-21,-69,-19,117,-17,63,-15,19,-13,-59,-12,-109,-10,93,-8,3,-6,-57,-5,94,-3,16,-1,-76,0,57,2,-57,3,54,5,-83,6,27,8,96,9,-76,10,-37,11,22,13,54,14,57,15,64,16,33,17,15,18,-23,18,-94,19,93,20,21,21,-101,21,58,22,-88,22,43,23,-100,23,-19,23,79,24,-118,24,-37,24,24,25,68,25,118,25,-108,25,-69,25,-34,25,-18,25,9,26,32,26,42,26,56,26,67,26,79,26,98,26,101,26,118,26,122,26,-117,26,-105,26,-91,26,-79,26,-60,26,-52,26,-30,26,-20,26,-1,26,14,27,27,27,38,27,49,27,59,27,58,27,67,27,62,27,59,27,44,27,24,27,2,27,-27,26,-66,26,-112,26,77,26,21,26,-59,25,115,25,15,25,-105,24,40,24,-100,23,-1,22,107,22,-74,21,6,21,54,20,89,19,127,18,-117,17,-107,16,-123,15,100,14,77,13,25,12,-23,10,-99,9,68,8,-4,6,-109,5,32,4,-61,2,66,1,-34,-1,80,-2,-49,-4,86,-5,-48,-7,92,-8,-47,-10,77,-11,-31,-13,100,-14,2,-15,-107,-17,40,-18,-28,-20,-116,-21,87,-22,26,-23,-23,-25,-39,-26,-59,-27,-65,-28,-38,-29,-12,-30,47,-30,107,-31,-70,-32,37,-32,-105,-33,38,-33,-71,-34,102,-34,35,-34,-16,-35,-43,-35,-65,-35,-62,-35,-47,-35,-13,-35,32,-34,93,-34,-84,-34,-3,-34,106,-33,-44,-33,81,-32,-43,-32,98,-31,-9,-31,-100,-30,54,-29,-23,-29,-113,-28,71,-27,6,-26,-77,-26,121,-25,43,-24,-15,-24,-76,-23,105,-22,47,-21,-19,-21,-93,-20,93,-19,15,-18,-59,-18,-125,-17,35,-16,-40,-16,117,-15,38,-14,-47,-14,105,-13,15,-12,-93,-12,70,-11,-17,-11,120,-10,32,-9,-60,-9,80,-8,-8,-8,-119,-7,49,-6,-30,-6,118,-5,46,-4,-52,-4,-118,-3,75,-2,-6,-2,-56,-1,-124,0,94,1,61,2,15,3,-6,3,-36,4,-42,5,-38,6,-48,7,-34,8,-9,9,-5,10,38,12,51,13,104,14,-110,15,-73,16,-17,17,23,19,83,20,-115,21,-72,22,-16,23,28,25,73,26,123,27,-105,28,-75,29,-48,30,-44,31,-37,32,-52,33,-69,34,-107,35,103,36,33,37,-44,37,108,38,-4,38,109,39,-42,39,32,40,96,40,120,40,-111,40,124,40,93,40,39,40,-45,39,114,39,-21,38,82,38,-89,37,-31,36,8,36,21,35,3,34,-14,32,-69,31,127,30,38,29,-74,27,73,26,-67,24,50,23,-117,21,-40,19,46,18,103,16,-103,14,-36,12,0,11,63,9,96,7,-125,5,-62,3,-28,1,44,0,88,-2,-108,-4,-23,-6,53,-7,-97,-9,0,-10,108,-12,-4,-14,-122,-15,29,-16,-33,-18,-108,-19,120,-20,79,-21,66,-22,83,-23,108,-24,-95,-25,-34,-26,39,-26,-104,-27,10,-27,-97,-28,49,-28,-37,-29,-98,-29,102,-29,76,-29,46,-29,39,-29,48,-29,65,-29,86,-29,-117,-29,-78,-29,-4,-29,50,-28,-126,-28,-48,-28,41,-27}; }
	private static byte[] data3(){ return new byte[] {-128,-27,-28,-27,57,-26,-86,-26,2,-25,112,-25,-47,-25,51,-24,-101,-24,-8,-24,94,-23,-72,-23,19,-22,108,-22,-67,-22,28,-21,92,-21,-73,-21,-15,-21,66,-20,-122,-20,-59,-20,7,-19,64,-19,-126,-19,-60,-19,-9,-19,61,-18,125,-18,-72,-18,-4,-18,61,-17,-125,-17,-30,-17,27,-16,-123,-16,-52,-16,62,-15,-85,-15,18,-14,-107,-14,8,-13,-99,-13,56,-12,-52,-12,122,-11,33,-10,-28,-10,-79,-9,121,-8,88,-7,74,-6,39,-5,44,-4,28,-3,51,-2,75,-1,93,0,-125,1,-93,2,-43,3,20,5,64,6,-126,7,-75,8,-3,9,66,11,123,12,-66,13,2,15,51,16,105,17,-107,18,-65,19,-23,20,-8,21,12,23,10,24,9,25,-4,25,-45,26,-83,27,105,28,34,29,-52,29,92,30,-28,30,81,31,-72,31,7,32,69,32,115,32,-117,32,-106,32,-120,32,111,32,65,32,3,32,-73,31,85,31,-24,30,106,30,-35,29,69,29,-98,28,-19,27,44,27,101,26,-112,25,-71,24,-52,23,-19,22,-10,21,11,21,12,20,11,19,21,18,17,17,22,16,25,15,10,14,30,13,27,12,43,11,57,10,57,9,101,8,110,7,-112,6,-67,5,-28,4,37,4,86,3,-113,2,-29,1,40,1,-118,0,-35,-1,54,-1,-88,-2,17,-2,-120,-3,0,-3,106,-4,-4,-5,117,-5,6,-5,-118,-6,7,-6,-91,-7,37,-7,-80,-8,69,-8,-52,-9,98,-9,-25,-10,101,-10,-7,-11,114,-11,-1,-12,116,-12,-24,-13,101,-13,-47,-14,73,-14,-85,-15,15,-15,117,-16,-48,-17,39,-17,-125,-18,-39,-19,42,-19,125,-20,-59,-21,26,-21,97,-22,-71,-23,-3,-24,87,-24,-95,-25,1,-25,85,-26,-72,-27,30,-27,-121,-28,0,-28,120,-29,-1,-30,-110,-30,42,-30,-44,-31,-120,-31,73,-31,25,-31,-10,-32,-28,-32,-24,-32,-16,-32,24,-31,63,-31,-118,-31,-28,-31,66,-30,-57,-30,71,-29,-15,-29,-91,-28,99,-27,60,-26,44,-25,28,-24,42,-23,60,-22,105,-21,-87,-20,-29,-19,60,-17,-111,-16,0,-14,126,-13,-19,-12,119,-10,-4,-9,-112,-7,46,-5,-66,-4,90,-2,3,0,-116,1,48,3,-72,4,81,6,-26,7,94,9,-29,10,76,12,-65,13,35,15,114,16,-71,17,-20,18,31,20,60,21,71,22,64,23,42,24,7,25,-42,25,-123,26,47,27,-57,27,66,28,-74,28,11,29,92,29,-103,29,-66,29,-40,29,-33,29,-41,29,-58,29,-101,29,106,29,41,29,-34,28,-121,28,35,28,-77,27,67,27,-65,26,60,26,-84,25,26,25,-128,24,-25,23,65,23,-89,22,-9,21,87,21,-82,20,5,20,101,19,-75,18,21,18,112,17,-46,16,54,16,-104,15,-4,14,107,14,-41,13,66,13,-63,12,49,12,-73,11,46,11,-86,10,57,10,-73,9,74,9,-49,8,85,8,-24,7,118,7,5,7,-106,6,20,6,-78,5,48,5,-76,4,70,4,-64,3,81,3,-62,2,56,2,-72,1,31,1,-101,0,-6,-1,83,-1,-61,-2,13,-2,112,-3,-72,-4,-11,-5,76,-5,127,-6,-55,-7,-9,-8,36,-8,93,-9,-123,-10,-89,-11,-38,-12,-6,-13,38,-13,70,-14,102,-15,-110,-16,-72,-17,-26,-18,13,-18,60,-19,116,-20,-84,-21,-15,-22,52,-22,125,-23,-35,-24,50,-24,-97,-25,15,-25,-112,-26,23,-26,-81,-27,73,-27,0,-27,-78,-28,-124,-28,82,-28,64,-28,43,-28,52,-28,62,-28,97,-28,-114,-28,-52,-28,18,-27,117,-27,-48,-27,77,-26,-57,-26,89,-25,-8,-25,-103,-24,76,-23,6,-22,-52,-22,-91,-21,113,-20,92,-19,54,-18,44,-17,37,-16,18,-15,22,-14,14,-13,16,-12,33,-11,23,-10,36,-9,45,-8,40,-7,44,-6,36,-5,35,-4,32,-3,12,-2,-6,-2,-34,-1,-63,0,-84,1,110,2,77,3,0,4,-49,4,-117,5,52,6,-27,6,-115,7,30,8,-72,8,58,9,-57,9,74,10,-69,10,45,11,-108,11,-5,11,101,12,-76,12,17,13,89,13,-83,13,-4,13,61,14,-124,14,-64,14,4,15,70,15,127,15,-68,15,-3,15,48,16,112,16,-91,16,-29,16,32,17,88,17,-105,17,-51,17,19,18,72,18,-113,18,-61,18,8,19,66,19,-127,19,-64,19,-9,19,53,20,105,20,-91,20,-45,20,11,21,46,21,95,21,126,21,-92,21,-72,21,-52,21,-37,21,-34,21,-29,21,-44,21,-67,21,-86,21,124,21,77,21,24,21,-48,20,-121,20,40,20,-67,19,85,19,-46,18,80,18,-72,17,14,17,110,16,-82,15,-11,14,32,14,62,13,103,12,109,11,-123,10,118,9,108,8,93,7,66,6,22,5,-6,3,-54,2,-99,1,105,0,33,-1,-6,-3,-81,-4,-124,-5,61,-6,-2,-8,-48,-9,-110,-10,110,-11,55,-12,13,-13,-10,-15,-44,-16,-61,-17,-67,-18}; }
	private static byte[] data4(){ return new byte[] {-65,-19,-48,-20,-33,-21,4,-21,47,-22,112,-23,-73,-24,11,-24,106,-25,-32,-26,93,-26,-15,-27,-119,-27,51,-27,-16,-28,-72,-28,-109,-28,118,-28,110,-28,108,-28,-125,-28,-102,-28,-52,-28,3,-27,71,-27,-100,-27,-13,-27,94,-26,-49,-26,70,-25,-45,-25,89,-24,-13,-24,-117,-23,47,-22,-42,-22,-118,-21,55,-20,-12,-20,-82,-19,107,-18,40,-17,-21,-17,-83,-16,121,-15,51,-14,-2,-14,-71,-13,127,-12,72,-11,-5,-11,-62,-10,115,-9,49,-8,-18,-8,-107,-7,79,-6,1,-5,-95,-5,82,-4,-26,-4,-107,-3,51,-2,-56,-2,101,-1,-14,-1,-117,0,34,1,-91,1,57,2,-70,2,71,3,-41,3,80,4,-36,4,87,5,-37,5,107,6,-38,6,105,7,-23,7,100,8,-24,8,96,9,-25,9,105,10,-27,10,103,11,-33,11,102,12,-27,12,98,13,-31,13,89,14,-41,14,89,15,-56,15,71,16,-67,16,43,17,-99,17,8,18,111,18,-36,18,54,19,-107,19,-22,19,62,20,-118,20,-49,20,16,21,69,21,123,21,-96,21,-58,21,-36,21,-16,21,-8,21,-11,21,-18,21,-37,21,-72,21,-100,21,98,21,51,21,-24,20,-99,20,71,20,-26,19,127,19,12,19,-119,18,13,18,120,17,-20,16,70,16,-96,15,-10,14,66,14,127,13,-57,12,-2,11,56,11,103,10,-117,9,-68,8,-32,7,8,7,38,6,65,5,102,4,-124,3,-89,2,-58,1,-34,0,12,0,42,-1,76,-2,-127,-3,-85,-4,-29,-5,26,-5,73,-6,-103,-7,-43,-8,45,-8,120,-9,-55,-10,48,-10,-112,-11,1,-11,114,-12,-32,-13,106,-13,-22,-14,126,-14,13,-14,-96,-15,76,-15,-22,-16,-105,-16,78,-16,5,-16,-54,-17,-115,-17,81,-17,42,-17,-7,-18,-40,-18,-75,-18,-109,-18,-126,-18,102,-18,92,-18,73,-18,65,-18,58,-18,53,-18,55,-18,50,-18,65,-18,61,-18,80,-18,85,-18,104,-18,115,-18,-118,-18,-102,-18,-72,-18,-54,-18,-21,-18,1,-17,41,-17,73,-17,110,-17,-104,-17,-67,-17,-15,-17,35,-16,84,-16,-112,-16,-48,-16,8,-15,83,-15,-108,-15,-28,-15,61,-14,-121,-14,-19,-14,64,-13,-81,-13,29,-12,-124,-12,3,-11,111,-11,-1,-11,-128,-10,16,-9,-101,-9,66,-8,-47,-8,124,-7,24,-6,-49,-6,-127,-5,54,-4,-15,-4,-86,-3,118,-2,63,-1,5,0,-42,0,-97,1,121,2,82,3,32,4,-2,4,-51,5,-84,6,-121,7,89,8,47,9,15,10,-48,10,-85,11,106,12,55,13,1,14,-77,14,116,15,29,16,-47,16,118,17,19,18,-88,18,56,19,-68,19,64,20,-82,20,29,21,-128,21,-41,21,35,22,103,22,-94,22,-51,22,-7,22,8,23,34,23,29,23,30,23,8,23,-14,22,-56,22,-98,22,94,22,33,22,-46,21,120,21,32,21,-77,20,73,20,-48,19,74,19,-52,18,55,18,-84,17,12,17,107,16,-55,15,28,15,116,14,-67,13,3,13,82,12,-114,11,-38,10,19,10,77,9,-112,8,-54,7,-3,6,67,6,119,5,-67,4,-14,3,48,3,113,2,-77,1,-5,0,58,0,-128,-1,-50,-2,24,-2,113,-3,-69,-4,15,-4,111,-5,-58,-6,32,-6,-113,-7,-19,-8,102,-8,-54,-9,59,-9,-72,-10,47,-10,-76,-11,50,-11,-77,-12,68,-12,-47,-13,101,-13,-4,-14,-115,-14,53,-14,-46,-15,126,-15,36,-15,-49,-16,-122,-16,59,-16,-17,-17,-75,-17,113,-17,65,-17,4,-17,-42,-18,-88,-18,-127,-18,95,-18,62,-18,34,-18,14,-18,-6,-19,-16,-19,-25,-19,-29,-19,-26,-19,-21,-19,-8,-19,10,-18,30,-18,58,-18,91,-18,-128,-18,-82,-18,-36,-18,16,-17,79,-17,-112,-17,-44,-17,35,-16,108,-16,-54,-16,36,-15,-124,-15,-21,-15,89,-14,-58,-14,58,-13,-78,-13,51,-12,-73,-12,60,-11,-59,-11,82,-10,-25,-10,-126,-9,19,-8,-74,-8,76,-7,-13,-7,-99,-6,57,-5,-23,-5,-120,-4,57,-3,-23,-3,-113,-2,63,-1,-12,-1,-107,0,72,1,-19,1,-103,2,76,3,-24,3,-108,4,48,5,-42,5,121,6,14,7,-85,7,57,8,-49,8,100,9,-30,9,116,10,-15,10,111,11,-25,11,86,12,-53,12,52,13,-105,13,-8,13,78,14,-90,14,-7,14,63,15,-124,15,-60,15,-7,15,58,16,90,16,-112,16,-89,16,-48,16,-28,16,-4,16,5,17,21,17,18,17,24,17,12,17,7,17,-15,16,-30,16,-59,16,-86,16,-121,16,96,16,52,16,7,16,-45,15,-100,15,95,15,32,15,-32,14,-112,14,80,14,-6,13,-80,13,89,13,-6,12,-88,12,66,12,-22,11,127,11,20,11,-79,10,62,10,-42,9,95,9,-26,8,116,8,-9,7,117,7,-3,6,123,6,-5,5,119,5,-26,4,104,4,-38,3,83,3,-58,2,45,2,-88,1,18,1,-120,0}; }
	private static byte[] data5(){ return new byte[] {-14,-1,86,-1,-51,-2,49,-2,-87,-3,10,-3,117,-4,-27,-5,77,-5,-73,-6,40,-6,-105,-7,8,-7,122,-8,-29,-9,97,-9,-46,-10,81,-10,-57,-11,65,-11,-57,-12,68,-12,-43,-13,82,-13,-26,-14,115,-14,10,-14,-96,-15,62,-15,-32,-16,-118,-16,50,-16,-30,-17,-102,-17,82,-17,23,-17,-38,-18,-90,-18,122,-18,79,-18,49,-18,17,-18,-2,-19,-17,-19,-28,-19,-27,-19,-26,-19,-13,-19,5,-18,26,-18,63,-18,94,-18,-116,-18,-66,-18,-12,-18,58,-17,119,-17,-55,-17,20,-16,112,-16,-51,-16,48,-15,-105,-15,5,-14,120,-14,-10,-14,110,-13,-14,-13,-128,-12,1,-11,-103,-11,34,-10,-64,-10,92,-9,-10,-9,-104,-8,55,-7,-33,-7,-114,-6,47,-5,-31,-5,-122,-4,56,-3,-17,-3,-108,-2,76,-1,-1,-1,-86,0,90,1,7,2,-75,2,106,3,12,4,-73,4,94,5,-2,5,-80,6,62,7,-25,7,115,8,18,9,-91,9,46,10,-69,10,60,11,-66,11,66,12,-80,12,39,13,-102,13,-9,13,98,14,-74,14,17,15,103,15,-88,15,-8,15,41,16,111,16,-102,16,-54,16,-17,16,10,17,44,17,56,17,74,17,78,17,78,17,75,17,60,17,43,17,21,17,-14,16,-43,16,-91,16,125,16,67,16,12,16,-53,15,-117,15,62,15,-10,14,-101,14,78,14,-20,13,-109,13,47,13,-62,12,98,12,-19,11,123,11,14,11,-111,10,34,10,-97,9,34,9,-91,8,35,8,-92,7,29,7,-108,6,19,6,-120,5,6,5,121,4,-19,3,106,3,-37,2,79,2,-53,1,65,1,-68,0,54,0,-94,-1,47,-1,-103,-2,40,-2,-102,-3,23,-3,-95,-4,25,-4,-85,-5,38,-5,-82,-6,60,-6,-61,-7,88,-7,-28,-8,114,-8,12,-8,-94,-9,50,-9,-38,-10,112,-10,27,-10,-71,-11,95,-11,11,-11,-73,-12,107,-12,26,-12,-47,-13,-119,-13,73,-13,9,-13,-53,-14,-109,-14,91,-14,46,-14,-7,-15,-42,-15,-85,-15,-115,-15,107,-15,82,-15,60,-15,43,-15,28,-15,20,-15,12,-15,16,-15,16,-15,26,-15,37,-15,58,-15,76,-15,107,-15,-121,-15,-81,-15,-46,-15,5,-14,47,-14,113,-14,-94,-14,-23,-14,38,-13,114,-13,-60,-13,13,-12,107,-12,-68,-12,30,-11,-121,-11,-32,-11,86,-10,-74,-10,48,-9,-91,-9,22,-8,-105,-8,19,-7,-110,-7,19,-6,-106,-6,29,-5,-86,-5,47,-4,-68,-4,68,-3,-42,-3,102,-2,-15,-2,-125,-1,9,0,-94,0,48,1,-71,1,75,2,-38,2,94,3,-18,3,107,4,-7,4,125,5,-6,5,124,6,-15,6,112,7,-24,7,87,8,-56,8,49,9,-101,9,5,10,96,10,-64,10,20,11,110,11,-66,11,11,12,81,12,-100,12,-45,12,20,13,69,13,123,13,-86,13,-48,13,-9,13,21,14,50,14,76,14,92,14,109,14,118,14,126,14,127,14,127,14,119,14,110,14,95,14,79,14,56,14,31,14,0,14,-31,13,-70,13,-106,13,102,13,55,13,7,13,-53,12,-100,12,84,12,27,12,-46,11,-112,11,64,11,-9,10,-88,10,83,10,2,10,-97,9,76,9,-24,8,-115,8,37,8,-71,7,85,7,-26,6,123,6,9,6,-116,5,31,5,-95,4,44,4,-84,3,40,3,-84,2,39,2,-100,1,29,1,-111,0,14,0,-126,-1,-17,-2,108,-2,-39,-3,84,-3,-62,-4,50,-4,-88,-5,26,-5,-111,-6,5,-6,116,-7,-14,-8,104,-8,-37,-9,99,-9,-41,-10,101,-10,-34,-11,105,-11,-11,-12,-128,-12,25,-12,-87,-13,67,-13,-25,-14,-124,-14,56,-14,-37,-15,-107,-15,75,-15,12,-15,-47,-16,-98,-16,106,-16,73,-16,34,-16,8,-16,-9,-17,-27,-17,-28,-17,-31,-17,-23,-17,-8,-17,10,-16,42,-16,73,-16,119,-16,-96,-16,-34,-16,16,-15,94,-15,-97,-15,-13,-15,67,-14,-94,-14,-3,-14,98,-13,-54,-13,55,-12,-84,-12,29,-11,-103,-11,18,-10,-109,-10,26,-9,-104,-9,38,-8,-91,-8,57,-7,-62,-7,80,-6,-35,-6,112,-5,-5,-5,-119,-4,22,-3,-93,-3,53,-2,-70,-2,73,-1,-55,-1,87,0,-38,0,93,1,-36,1,87,2,-45,2,82,3,-65,3,55,4,-96,4,14,5,-128,5,-38,5,70,6,-94,6,0,7,85,7,-86,7,-3,7,78,8,-105,8,-33,8,33,9,101,9,-90,9,-33,9,23,10,76,10,126,10,-79,10,-36,10,6,11,51,11,82,11,118,11,-107,11,-78,11,-48,11,-25,11,-5,11,16,12,33,12,47,12,63,12,68,12,79,12,84,12,84,12,89,12,81,12,82,12,70,12,61,12,49,12,32,12,12,12,-8,11,-35,11,-58,11,-94,11,-127,11,91,11,51,11,8,11,-42,10,-94,10,107,10,49,10,-11,9,-78,9,103,9,37,9,-48,8,-126,8,45,8,-42,7}; }
	private static byte[] data6(){ return new byte[] {123,7,30,7,-79,6,87,6,-26,5,-127,5,14,5,-104,4,39,4,-79,3,56,3,-69,2,57,2,-67,1,60,1,-77,0,56,0,-84,-1,48,-1,-90,-2,29,-2,-97,-3,21,-3,-104,-4,17,-4,-115,-5,16,-5,-110,-6,24,-6,-99,-7,34,-7,-77,-8,60,-8,-40,-9,101,-9,1,-9,-99,-10,65,-10,-34,-11,-109,-11,57,-11,-10,-12,-90,-12,102,-12,42,-12,-19,-13,-62,-13,-117,-13,102,-13,67,-13,33,-13,13,-13,-11,-14,-25,-14,-34,-14,-41,-14,-38,-14,-37,-14,-22,-14,-13,-14,11,-13,31,-13,60,-13,90,-13,127,-13,-93,-13,-42,-13,-7,-13,55,-12,94,-12,-96,-12,-40,-12,19,-11,86,-11,-110,-11,-36,-11,32,-10,105,-10,-79,-10,2,-9,74,-9,-102,-9,-25,-9,58,-8,-113,-8,-36,-8,52,-7,-125,-7,-34,-7,52,-6,-119,-6,-31,-6,55,-5,-112,-5,-15,-5,64,-4,-90,-4,-4,-4,91,-3,-77,-3,16,-2,110,-2,-47,-2,42,-1,-115,-1,-26,-1,76,0,-82,0,13,1,112,1,-49,1,51,2,-98,2,-8,2,99,3,-63,3,39,4,-108,4,-18,4,92,5,-66,5,33,6,-122,6,-26,6,76,7,-82,7,12,8,109,8,-55,8,37,9,-122,9,-43,9,52,10,-128,10,-42,10,37,11,111,11,-73,11,-2,11,60,12,122,12,-77,12,-26,12,23,13,67,13,101,13,-117,13,-93,13,-69,13,-53,13,-40,13,-40,13,-31,13,-51,13,-50,13,-81,13,-98,13,121,13,89,13,42,13,-5,12,-65,12,-123,12,64,12,-6,11,-87,11,82,11,-4,10,-101,10,59,10,-45,9,95,9,-10,8,124,8,9,8,-118,7,9,7,-120,6,7,6,117,5,-8,4,104,4,-31,3,84,3,-63,2,57,2,-83,1,30,1,-106,0,3,0,126,-1,-10,-2,112,-2,-19,-3,99,-3,-20,-4,105,-4,-18,-5,126,-5,3,-5,-98,-6,42,-6,-61,-7,98,-7,0,-7,-88,-8,80,-8,-10,-9,-79,-9,95,-9,33,-9,-36,-10,-101,-10,103,-10,49,-10,3,-10,-41,-11,-85,-11,-117,-11,105,-11,76,-11,53,-11,33,-11,17,-11,0,-11,-7,-12,-19,-12,-16,-12,-26,-12,-15,-12,-22,-12,-5,-12,-4,-12,14,-11,22,-11,40,-11,58,-11,76,-11,100,-11,122,-11,-110,-11,-82,-11,-55,-11,-22,-11,7,-10,41,-10,75,-10,110,-10,-103,-10,-68,-10,-27,-10,18,-9,56,-9,114,-9,-106,-9,-50,-9,3,-8,50,-8,112,-8,-95,-8,-31,-8,32,-7,91,-7,-97,-7,-34,-7,38,-6,115,-6,-74,-6,8,-5,79,-5,-91,-5,-5,-5,75,-4,-89,-4,-6,-4,91,-3,-69,-3,22,-2,124,-2,-30,-2,67,-1,-85,-1,17,0,124,0,-23,0,83,1,-67,1,42,2,-105,2,10,3,112,3,-28,3,71,4,-69,4,36,5,-112,5,-12,5,100,6,-64,6,41,7,-124,7,-26,7,66,8,-104,8,-20,8,65,9,-119,9,-35,9,26,10,96,10,-99,10,-44,10,12,11,60,11,99,11,-115,11,-85,11,-55,11,-31,11,-16,11,-1,11,4,12,9,12,4,12,-2,11,-19,11,-32,11,-59,11,-82,11,-118,11,102,11,62,11,17,11,-32,10,-87,10,113,10,52,10,-10,9,-82,9,109,9,33,9,-38,8,-120,8,58,8,-25,7,-107,7,64,7,-22,6,-114,6,59,6,-36,5,-119,5,41,5,-50,4,117,4,24,4,-71,3,100,3,5,3,-78,2,82,2,-7,1,-92,1,73,1,-7,0,-98,0,71,0,-8,-1,-95,-1,85,-1,-1,-2,-83,-2,98,-2,18,-2,-57,-3,124,-3,39,-3,-25,-4,-104,-4,76,-4,10,-4,-66,-5,127,-5,51,-5,-17,-6,-84,-6,104,-6,43,-6,-28,-7,-95,-7,103,-7,33,-7,-21,-8,-89,-8,108,-8,49,-8,-9,-9,-71,-9,-123,-9,78,-9,24,-9,-24,-10,-82,-10,-122,-10,81,-10,43,-10,-5,-11,-42,-11,-80,-11,-116,-11,111,-11,78,-11,53,-11,30,-11,10,-11,-7,-12,-18,-12,-29,-12,-34,-12,-33,-12,-33,-12,-22,-12,-16,-12,5,-11,20,-11,52,-11,74,-11,114,-11,-109,-11,-62,-11,-11,-11,34,-10,101,-10,-105,-10,-26,-10,37,-9,118,-9,-62,-9,28,-8,112,-8,-52,-8,44,-7,-114,-7,-5,-7,93,-6,-46,-6,55,-5,-77,-5,35,-4,-100,-4,19,-3,-118,-3,9,-2,-124,-2,3,-1,123,-1,4,0,118,0,-7,0,112,1,-20,1,108,2,-34,2,86,3,-54,3,58,4,-79,4,22,5,-123,5,-25,5,77,6,-82,6,10,7,95,7,-73,7,2,8,86,8,-106,8,-33,8,29,9,86,9,-117,9,-68,9,-24,9,20,10,50,10,83,10,108,10,-126,10,-104,10,-98,10,-84,10,-83,10,-80,10,-79,10,-93,10,-98,10,-115,10,127,10,104,10,82,10,54,10,25,10,-6,9,-40,9,-80,9,-114,9,95,9,56,9,9,9,-36,8,-85,8}; }
	private static byte[] data7(){ return new byte[] {118,8,72,8,12,8,-31,7,-96,7,109,7,48,7,-6,6,-72,6,-124,6,66,6,9,6,-55,5,-122,5,77,5,7,5,-50,4,-124,4,70,4,-1,3,-63,3,122,3,53,3,-19,2,-89,2,98,2,19,2,-47,1,-126,1,62,1,-18,0,-94,0,88,0,8,0,-65,-1,108,-1,28,-1,-48,-2,123,-2,50,-2,-37,-3,-120,-3,60,-3,-27,-4,-102,-4,68,-4,-16,-5,-93,-5,81,-5,-4,-6,-75,-6,94,-6,25,-6,-55,-7,123,-7,55,-7,-22,-8,-85,-8,98,-8,32,-8,-29,-9,-94,-9,111,-9,48,-9,-2,-10,-50,-10,-101,-10,117,-10,73,-10,40,-10,9,-10,-24,-11,-42,-11,-68,-11,-80,-11,-95,-11,-101,-11,-105,-11,-105,-11,-98,-11,-92,-11,-75,-11,-60,-11,-34,-11,-12,-11,24,-10,55,-10,93,-10,-117,-10,-75,-10,-18,-10,29,-9,91,-9,-110,-9,-40,-9,24,-8,95,-8,-90,-8,-17,-8,64,-7,-113,-7,-32,-7,50,-6,-120,-6,-37,-6,60,-5,-119,-5,-18,-5,67,-4,-98,-4,-5,-4,81,-3,-78,-3,12,-2,101,-2,-63,-2,23,-1,115,-1,-51,-1,32,0,122,0,-57,0,34,1,114,1,-62,1,17,2,100,2,-88,2,-8,2,56,3,-123,3,-55,3,11,4,74,4,-119,4,-57,4,3,5,61,5,113,5,-86,5,-39,5,21,6,58,6,114,6,-105,6,-58,6,-15,6,23,7,61,7,100,7,-121,7,-93,7,-54,7,-32,7,6,8,24,8,56,8,74,8,100,8,121,8,-121,8,-98,8,-89,8,-70,8,-63,8,-48,8,-46,8,-36,8,-35,8,-33,8,-31,8,-37,8,-41,8,-49,8,-58,8,-71,8,-85,8,-106,8,-122,8,106,8,86,8,54,8,20,8,-10,7,-52,7,-93,7,123,7,73,7,27,7,-28,6,-87,6,116,6,49,6,-9,5,-82,5,102,5,35,5,-49,4,-117,4,50,4,-32,3,-117,3,51,3,-37,2,127,2,28,2,-59,1,93,1,-3,0,-102,0,56,0,-43,-1,112,-1,5,-1,-89,-2,63,-2,-35,-3,121,-3,15,-3,-75,-4,79,-4,-12,-5,-108,-5,52,-5,-34,-6,-124,-6,44,-6,-37,-7,-117,-7,61,-7,-13,-8,-86,-8,102,-8,39,-8,-23,-9,-79,-9,120,-9,72,-9,26,-9,-15,-10,-54,-10,-88,-10,-119,-10,115,-10,88,-10,77,-10,57,-10,53,-10,44,-10,44,-10,46,-10,53,-10,66,-10,73,-10,100,-10,112,-10,-112,-10,-89,-10,-55,-10,-22,-10,16,-9,56,-9,97,-9,-112,-9,-63,-9,-14,-9,38,-8,96,-8,-108,-8,-47,-8,12,-7,72,-7,-117,-7,-55,-7,10,-6,75,-6,-112,-6,-41,-6,24,-5,99,-5,-95,-5,-18,-5,54,-4,121,-4,-57,-4,13,-3,85,-3,-100,-3,-27,-3,44,-2,120,-2,-69,-2,7,-1,74,-1,-109,-1,-33,-1,28,0,109,0,-89,0,-11,0,57,1,124,1,-63,1,1,2,71,2,-117,2,-53,2,12,3,82,3,-117,3,-50,3,10,4,69,4,-116,4,-70,4,0,5,48,5,110,5,-91,5,-38,5,15,6,64,6,117,6,-92,6,-45,6,1,7,44,7,86,7,124,7,-94,7,-60,7,-22,7,2,8,38,8,56,8,87,8,104,8,124,8,-117,8,-104,8,-95,8,-84,8,-85,8,-79,8,-85,8,-87,8,-96,8,-108,8,-121,8,116,8,95,8,75,8,43,8,17,8,-20,7,-54,7,-92,7,120,7,76,7,25,7,-23,6,-76,6,123,6,67,6,-1,5,-54,5,126,5,64,5,-8,4,-77,4,107,4,32,4,-49,3,-120,3,54,3,-20,2,-105,2,71,2,-12,1,-89,1,83,1,1,1,-83,0,92,0,11,0,-75,-1,106,-1,22,-1,-51,-2,122,-2,44,-2,-29,-3,-105,-3,80,-3,10,-3,-70,-4,-126,-4,53,-4,-3,-5,-69,-5,119,-5,70,-5,6,-5,-45,-6,-97,-6,100,-6,61,-6,9,-6,-37,-7,-73,-7,-120,-7,106,-7,67,-7,32,-7,6,-7,-29,-8,-47,-8,-78,-8,-97,-8,-117,-8,119,-8,109,-8,89,-8,82,-8,71,-8,64,-8,59,-8,55,-8,56,-8,53,-8,60,-8,62,-8,70,-8,78,-8,89,-8,99,-8,118,-8,-128,-8,-104,-8,-89,-8,-66,-8,-40,-8,-19,-8,13,-7,35,-7,73,-7,100,-7,-116,-7,-85,-7,-40,-7,-7,-7,40,-6,77,-6,-128,-6,-82,-6,-34,-6,16,-5,67,-5,121,-5,-75,-5,-23,-5,39,-4,95,-4,-97,-4,-31,-4,31,-3,96,-3,-84,-3,-28,-3,54,-2,113,-2,-64,-2,9,-1,79,-1,-98,-1,-31,-1,53,0,124,0,-53,0,24,1,94,1,-77,1,-5,1,74,2,-109,2,-31,2,38,3,123,3,-71,3,9,4,77,4,-105,4,-46,4,31,5,85,5,-95,5,-44,5,21,6,74,6,-125,6,-70,6,-25,6,29,7,65,7,115,7,-105,7,-68,7,-34,7,-4,7,24,8,47,8,69,8}; }
	private static byte[] data8(){ return new byte[] {86,8,101,8,113,8,119,8,125,8,126,8,124,8,121,8,109,8,100,8,85,8,64,8,50,8,18,8,-5,7,-35,7,-70,7,-100,7,112,7,73,7,30,7,-17,6,-61,6,-116,6,90,6,34,6,-22,5,-78,5,116,5,54,5,-7,4,-74,4,120,4,51,4,-18,3,-84,3,99,3,29,3,-41,2,-114,2,76,2,-2,1,-75,1,113,1,37,1,-32,0,-105,0,76,0,7,0,-64,-1,122,-1,51,-1,-19,-2,-88,-2,103,-2,28,-2,-30,-3,-99,-3,96,-3,33,-3,-33,-4,-90,-4,106,-4,50,-4,-7,-5,-65,-5,-116,-5,86,-5,39,-5,-12,-6,-62,-6,-103,-6,105,-6,66,-6,25,-6,-17,-7,-50,-7,-86,-7,-123,-7,107,-7,74,-7,51,-7,22,-7,2,-7,-23,-8,-38,-8,-56,-8,-71,-8,-84,-8,-93,-8,-105,-8,-103,-8,-116,-8,-110,-8,-114,-8,-110,-8,-101,-8,-99,-8,-85,-8,-75,-8,-60,-8,-41,-8,-27,-8,1,-7,16,-7,49,-7,73,-7,105,-7,-120,-7,-87,-7,-48,-7,-11,-7,30,-6,72,-6,119,-6,-95,-6,-41,-6,-1,-6,59,-5,110,-5,-94,-5,-34,-5,18,-4,81,-4,-116,-4,-53,-4,6,-3,70,-3,-121,-3,-56,-3,12,-2,74,-2,-112,-2,-48,-2,27,-1,86,-1,-93,-1,-28,-1,40,0,110,0,-84,0,-11,0,57,1,120,1,-69,1,-3,1,58,2,-127,2,-71,2,-7,2,52,3,112,3,-85,3,-29,3,25,4,83,4,-126,4,-72,4,-28,4,22,5,69,5,107,5,-102,5,-70,5,-27,5,6,6,42,6,68,6,101,6,123,6,-101,6,-87,6,-59,6,-47,6,-29,6,-15,6,-5,6,5,7,13,7,14,7,22,7,14,7,21,7,9,7,8,7,-4,6,-12,6,-27,6,-40,6,-58,6,-76,6,-97,6,-120,6,111,6,85,6,56,6,25,6,-8,5,-37,5,-79,5,-108,5,98,5,68,5,20,5,-18,4,-67,4,-112,4,95,4,50,4,-2,3,-51,3,-108,3,99,3,43,3,-15,2,-67,2,-127,2,75,2,14,2,-46,1,-104,1,92,1,31,1,-28,0,-96,0,107,0,38,0,-18,-1,-82,-1,108,-1,53,-1,-16,-2,-70,-2,121,-2,59,-2,1,-2,-60,-3,-123,-3,80,-3,18,-3,-34,-4,-94,-4,107,-4,54,-4,1,-4,-49,-5,-103,-5,106,-5,57,-5,13,-5,-33,-6,-77,-6,-119,-6,99,-6,59,-6,23,-6,-11,-7,-44,-7,-73,-7,-102,-7,126,-7,105,-7,79,-7,63,-7,44,-7,27,-7,17,-7,2,-7,-1,-8,-13,-8,-10,-8,-18,-8,-13,-8,-11,-8,-5,-8,5,-7,12,-7,29,-7,41,-7,62,-7,80,-7,100,-7,-126,-7,-104,-7,-71,-7,-44,-7,-7,-7,23,-6,69,-6,100,-6,-110,-6,-69,-6,-25,-6,27,-5,69,-5,125,-5,-82,-5,-29,-5,27,-4,79,-4,-117,-4,-57,-4,-1,-4,60,-3,122,-3,-75,-3,-6,-3,53,-2,118,-2,-75,-2,-9,-2,59,-1,119,-1,-65,-1,-3,-1,66,0,126,0,-61,0,-1,0,72,1,127,1,-60,1,-2,1,61,2,126,2,-76,2,-12,2,39,3,102,3,-102,3,-46,3,6,4,54,4,107,4,-101,4,-58,4,-8,4,31,5,73,5,113,5,-110,5,-71,5,-40,5,-7,5,18,6,50,6,65,6,101,6,108,6,-122,6,-110,6,-98,6,-81,6,-79,6,-70,6,-64,6,-67,6,-60,6,-71,6,-69,6,-83,6,-86,6,-103,6,-113,6,127,6,104,6,91,6,62,6,44,6,14,6,-14,5,-42,5,-75,5,-107,5,114,5,72,5,41,5,-4,4,-45,4,-86,4,123,4,81,4,34,4,-19,3,-61,3,-117,3,95,3,38,3,-14,2,-67,2,-120,2,82,2,26,2,-30,1,-88,1,117,1,50,1,4,1,-59,0,-113,0,87,0,23,0,-26,-1,-87,-1,117,-1,58,-1,2,-1,-53,-2,-106,-2,95,-2,44,-2,-15,-3,-61,-3,-115,-3,92,-3,44,-3,-10,-4,-54,-4,-99,-4,104,-4,69,-4,19,-4,-18,-5,-61,-5,-102,-5,120,-5,80,-5,49,-5,12,-5,-21,-6,-47,-6,-82,-6,-102,-6,121,-6,103,-6,76,-6,58,-6,37,-6,21,-6,7,-6,-9,-7,-17,-7,-30,-7,-37,-7,-41,-7,-50,-7,-44,-7,-53,-7,-45,-7,-44,-7,-39,-7,-29,-7,-22,-7,-9,-7,4,-6,19,-6,37,-6,55,-6,77,-6,98,-6,126,-6,-108,-6,-74,-6,-52,-6,-13,-6,16,-5,55,-5,88,-5,126,-5,-89,-5,-47,-5,-5,-5,38,-4,83,-4,-127,-4,-76,-4,-30,-4,20,-3,74,-3,123,-3,-80,-3,-26,-3,25,-2,86,-2,-122,-2,-60,-2,-9,-2,49,-1,109,-1,-95,-1,-35,-1,19,0,77,0,-120,0,-66,0,-10,0,51,1,99,1,-96,1,-49,1,9,2,62,2,112,2,-93,2,-44,2,4,3,56,3,99,3,-112,3,-68,3,-25,3,17,4}; }
	private static byte[] data9(){ return new byte[] {57,4,93,4,-124,4,-91,4,-55,4,-25,4,6,5,37,5,60,5,89,5,107,5,-123,5,-106,5,-87,5,-71,5,-58,5,-44,5,-36,5,-25,5,-19,5,-16,5,-10,5,-12,5,-10,5,-14,5,-17,5,-26,5,-30,5,-44,5,-52,5,-68,5,-79,5,-102,5,-111,5,115,5,100,5,74,5,51,5,25,5,-3,4,-35,4,-63,4,-95,4,124,4,94,4,54,4,20,4,-20,3,-63,3,-98,3,109,3,74,3,23,3,-19,2,-66,2,-114,2,97,2,47,2,-6,1,-51,1,-107,1,104,1,48,1,-7,0,-55,0,-114,0,91,0,37,0,-18,-1,-70,-1,-126,-1,73,-1,23,-1,-34,-2,-85,-2,116,-2,58,-2,14,-2,-49,-3,-89,-3,106,-3,59,-3,11,-3,-43,-4,-87,-4,120,-4,74,-4,33,-4,-15,-5,-55,-5,-96,-5,120,-5,84,-5,47,-5,11,-5,-20,-6,-53,-6,-80,-6,-110,-6,123,-6,98,-6,76,-6,58,-6,39,-6,24,-6,13,-6,-1,-7,-9,-7,-14,-7,-20,-7,-21,-7,-21,-7,-18,-7,-15,-7,-5,-7,1,-6,13,-6,30,-6,41,-6,62,-6,82,-6,100,-6,-124,-6,-107,-6,-72,-6,-44,-6,-14,-6,22,-5,54,-5,93,-5,-124,-5,-87,-5,-42,-5,-5,-5,44,-4,88,-4,-125,-4,-73,-4,-30,-4,20,-3,76,-3,115,-3,-78,-3,-34,-3,22,-2,72,-2,124,-2,-78,-2,-24,-2,26,-1,82,-1,-125,-1,-69,-1,-18,-1,35,0,83,0,-117,0,-72,0,-15,0,28,1,82,1,124,1,-81,1,-34,1,10,2,54,2,103,2,-119,2,-68,2,-38,2,9,3,46,3,81,3,118,3,-104,3,-72,3,-34,3,-10,3,25,4,49,4,77,4,107,4,125,4,-101,4,-84,4,-62,4,-43,4,-27,4,-8,4,5,5,19,5,30,5,42,5,50,5,59,5,64,5,70,5,72,5,77,5,73,5,76,5,71,5,69,5,63,5,55,5,48,5,38,5,25,5,16,5,-4,4,-13,4,-37,4,-49,4,-77,4,-90,4,-121,4,117,4,86,4,61,4,31,4,4,4,-32,3,-61,3,-99,3,126,3,82,3,51,3,8,3,-30,2,-71,2,-117,2,99,2,54,2,8,2,-35,1,-89,1,-127,1,72,1,31,1,-23,0,-74,0,-119,0,80,0,33,0,-20,-1,-68,-1,-121,-1,88,-1,28,-1,-11,-2,-71,-2,-112,-2,91,-2,39,-2,-3,-3,-56,-3,-97,-3,111,-3,65,-3,23,-3,-21,-4,-60,-4,-102,-4,116,-4,77,-4,43,-4,3,-4,-24,-5,-61,-5,-85,-5,-118,-5,113,-5,86,-5,67,-5,41,-5,25,-5,4,-5,-11,-6,-23,-6,-40,-6,-45,-6,-60,-6,-60,-6,-72,-6,-69,-6,-76,-6,-72,-6,-70,-6,-67,-6,-62,-6,-50,-6,-50,-6,-28,-6,-26,-6,-5,-6,7,-5,26,-5,42,-5,65,-5,82,-5,108,-5,-125,-5,-101,-5,-74,-5,-45,-5,-20,-5,14,-4,43,-4,73,-4,110,-4,-119,-4,-79,-4,-46,-4,-10,-4,28,-3,61,-3,103,-3,-114,-3,-78,-3,-33,-3,-2,-3,48,-2,85,-2,126,-2,-85,-2,-45,-2,-1,-2,41,-1,82,-1,127,-1,-85,-1,-42,-1,-1,-1,45,0,86,0,-121,0,-84,0,-37,0,3,1,48,1,93,1,-123,1,-81,1,-40,1,3,2,45,2,85,2,124,2,-89,2,-54,2,-13,2,22,3,60,3,98,3,-127,3,-89,3,-60,3,-25,3,8,4,31,4,70,4,85,4,123,4,-116,4,-88,4,-70,4,-43,4,-32,4,-7,4,2,5,20,5,31,5,43,5,50,5,58,5,62,5,67,5,66,5,69,5,62,5,62,5,53,5,45,5,35,5,23,5,6,5,-3,4,-30,4,-42,4,-69,4,-92,4,-113,4,109,4,88,4,49,4,23,4,-13,3,-48,3,-83,3,-125,3,95,3,53,3,12,3,-31,2,-76,2,-121,2,91,2,40,2,-3,1,-54,1,-99,1,107,1,56,1,7,1,-41,0,-91,0,116,0,62,0,18,0,-36,-1,-79,-1,123,-1,76,-1,30,-1,-18,-2,-66,-2,-110,-2,102,-2,58,-2,16,-2,-29,-3,-66,-3,-109,-3,113,-3,71,-3,36,-3,4,-3,-35,-4,-60,-4,-99,-4,-123,-4,102,-4,76,-4,52,-4,25,-4,5,-4,-19,-5,-37,-5,-55,-5,-75,-5,-87,-5,-103,-5,-114,-5,-128,-5,122,-5,108,-5,107,-5,98,-5,93,-5,91,-5,89,-5,89,-5,90,-5,91,-5,94,-5,100,-5,106,-5,111,-5,121,-5,-127,-5,-115,-5,-104,-5,-92,-5,-76,-5,-64,-5,-45,-5,-29,-5,-11,-5,10,-4,27,-4,52,-4,72,-4,99,-4,118,-4,-106,-4,-83,-4,-57,-4,-25,-4,-1,-4,36,-3,62,-3,96,-3,127,-3,-95,-3,-57,-3,-27,-3,12,-2,48,-2,82,-2,-127,-2,-99,-2,-52,-2,-18,-2,26,-1,66,-1,107,-1,-108,-1,-62,-1,-25,-1,21,0,60,0,105,0}; }
	private static byte[] data10(){ return new byte[] {-107,0,-67,0,-23,0,19,1,61,1,105,1,-111,1,-69,1,-29,1,12,2,54,2,89,2,-124,2,-88,2,-51,2,-14,2,16,3,58,3,82,3,123,3,-111,3,-78,3,-48,3,-28,3,7,4,19,4,51,4,65,4,88,4,104,4,118,4,-120,4,-112,4,-98,4,-90,4,-85,4,-75,4,-75,4,-71,4,-72,4,-73,4,-77,4,-80,4,-88,4,-97,4,-103,4,-122,4,-126,4,107,4,97,4,76,4,59,4,36,4,18,4,-12,3,-28,3,-60,3,-83,3,-110,3,111,3,88,3,54,3,24,3,-9,2,-44,2,-75,2,-114,2,116,2,69,2,41,2,0,2,-35,1,-75,1,-111,1,107,1,70,1,32,1,-10,0,-46,0,-84,0,-122,0,95,0,57,0,16,0,-17,-1,-59,-1,-92,-1,120,-1,90,-1,47,-1,18,-1,-25,-2,-58,-2,-92,-2,126,-2,94,-2,59,-2,26,-2,-6,-3,-37,-3,-73,-3,-100,-3,124,-3,95,-3,68,-3,34,-3,13,-3,-20,-4,-41,-4,-68,-4,-95,-4,-112,-4,113,-4,97,-4,72,-4,56,-4,35,-4,20,-4,-2,-5,-12,-5,-32,-5,-39,-5,-57,-5,-65,-5,-74,-5,-87,-5,-87,-5,-101,-5,-98,-5,-106,-5,-106,-5,-107,-5,-106,-5,-101,-5,-101,-5,-92,-5,-88,-5,-75,-5,-71,-5,-53,-5,-47,-5,-26,-5,-14,-5,6,-4,22,-4,46,-4,65,-4,92,-4,113,-4,-115,-4,-88,-4,-57,-4,-29,-4,4,-3,37,-3,69,-3,107,-3,-117,-3,-77,-3,-40,-3,0,-2,38,-2,79,-2,119,-2,-92,-2,-52,-2,-9,-2,34,-1,77,-1,124,-1,-91,-1,-46,-1,0,0,43,0,85,0,-124,0,-84,0,-36,0,2,1,47,1,86,1,-127,1,-86,1,-48,1,-8,1,27,2,66,2,103,2,-121,2,-84,2,-55,2,-23,2,11,3,34,3,68,3,89,3,118,3,-119,3,-93,3,-78,3,-50,3,-43,3,-17,3,-9,3,5,4,22,4,24,4,40,4,44,4,48,4,59,4,54,4,62,4,59,4,57,4,58,4,51,4,48,4,40,4,34,4,23,4,16,4,2,4,-8,3,-25,3,-34,3,-55,3,-66,3,-89,3,-105,3,-124,3,112,3,89,3,69,3,45,3,20,3,0,3,-32,2,-51,2,-81,2,-106,2,119,2,94,2,63,2,35,2,6,2,-29,1,-55,1,-90,1,-117,1,102,1,70,1,40,1,2,1,-28,0,-66,0,-95,0,123,0,92,0,52,0,20,0,-14,-1,-50,-1,-83,-1,-123,-1,102,-1,64,-1,34,-1,-4,-2,-40,-2,-71,-2,-109,-2,119,-2,80,-2,50,-2,15,-2,-13,-3,-51,-3,-77,-3,-111,-3,121,-3,86,-3,62,-3,30,-3,9,-3,-20,-4,-45,-4,-67,-4,-91,-4,-113,-4,126,-4,101,-4,88,-4,67,-4,53,-4,40,-4,23,-4,16,-4,2,-4,-5,-5,-13,-5,-19,-5,-24,-5,-27,-5,-27,-5,-32,-5,-23,-5,-29,-5,-16,-5,-19,-5,-3,-5,-2,-5,13,-4,24,-4,34,-4,55,-4,60,-4,90,-4,95,-4,-128,-4,-118,-4,-90,-4,-69,-4,-43,-4,-19,-4,9,-3,33,-3,65,-3,93,-3,123,-3,-101,-3,-74,-3,-35,-3,-10,-3,33,-2,57,-2,101,-2,-128,-2,-88,-2,-57,-2,-18,-2,17,-1,52,-1,89,-1,122,-1,-94,-1,-61,-1,-24,-1,11,0,45,0,82,0,116,0,-105,0,-72,0,-37,0,-3,0,26,1,63,1,88,1,127,1,-106,1,-69,1,-48,1,-13,1,11,2,40,2,67,2,89,2,116,2,-115,2,-94,2,-70,2,-49,2,-31,2,-6,2,9,3,28,3,48,3,58,3,80,3,89,3,107,3,121,3,-125,3,-109,3,-103,3,-87,3,-83,3,-73,3,-67,3,-63,3,-57,3,-56,3,-46,3,-49,3,-50,3,-57,3,-60,3,-67,3,-76,3,-83,3,-95,3,-106,3,-117,3,124,3,108,3,96,3,75,3,60,3,40,3,18,3,1,3,-24,2,-48,2,-67,2,-98,2,-117,2,109,2,82,2,56,2,25,2,0,2,-33,1,-63,1,-91,1,127,1,106,1,62,1,39,1,1,1,-32,0,-62,0,-100,0,125,0,90,0,57,0,18,0,-9,-1,-50,-1,-76,-1,-116,-1,109,-1,73,-1,44,-1,8,-1,-21,-2,-58,-2,-86,-2,-118,-2,107,-2,79,-2,45,-2,20,-2,-11,-3,-37,-3,-66,-3,-89,-3,-117,-3,117,-3,91,-3,69,-3,48,-3,27,-3,7,-3,-14,-4,-30,-4,-46,-4,-64,-4,-77,-4,-93,-4,-104,-4,-115,-4,-127,-4,122,-4,111,-4,107,-4,99,-4,95,-4,93,-4,88,-4,92,-4,85,-4,93,-4,91,-4,98,-4,100,-4,108,-4,115,-4,122,-4,-120,-4,-118,-4,-97,-4,-91,-4,-73,-4,-59,-4,-45,-4,-23,-4,-12,-4,14,-3,27,-3,54,-3,71,-3,98,-3,116,-3,-111,-3,-89,-3,-62,-3,-35,-3,-11,-3,20,-2,47,-2,75,-2}; }
	private static byte[] data11(){ return new byte[] {107,-2,-122,-2,-88,-2,-61,-2,-28,-2,1,-1,37,-1,65,-1,100,-1,-126,-1,-93,-1,-59,-1,-28,-1,6,0,36,0,71,0,103,0,-123,0,-87,0,-61,0,-25,0,6,1,33,1,69,1,94,1,-128,1,-103,1,-72,1,-47,1,-17,1,9,2,33,2,60,2,82,2,110,2,-128,2,-102,2,-85,2,-63,2,-42,2,-26,2,-7,2,10,3,22,3,41,3,49,3,68,3,71,3,90,3,91,3,105,3,108,3,114,3,122,3,121,3,127,3,126,3,126,3,127,3,122,3,121,3,115,3,110,3,104,3,94,3,88,3,75,3,67,3,53,3,40,3,27,3,10,3,-3,2,-23,2,-38,2,-60,2,-78,2,-99,2,-119,2,113,2,91,2,66,2,43,2,17,2,-11,1,-32,1,-65,1,-86,1,-119,1,109,1,83,1,51,1,23,1,-8,0,-39,0,-67,0,-100,0,-128,0,92,0,65,0,32,0,1,0,-31,-1,-59,-1,-95,-1,-119,-1,99,-1,74,-1,42,-1,12,-1,-17,-2,-47,-2,-75,-2,-103,-2,125,-2,98,-2,70,-2,45,-2,20,-2,-6,-3,-28,-3,-56,-3,-73,-3,-100,-3,-119,-3,117,-3,96,-3,80,-3,60,-3,44,-3,27,-3,15,-3,-3,-4,-11,-4,-28,-4,-35,-4,-49,-4,-53,-4,-65,-4,-68,-4,-78,-4,-78,-4,-86,-4,-85,-4,-88,-4,-88,-4,-87,-4,-84,-4,-84,-4,-76,-4,-76,-4,-64,-4,-61,-4,-51,-4,-42,-4,-32,-4,-21,-4,-6,-4,3,-3,21,-3,34,-3,49,-3,71,-3,82,-3,108,-3,121,-3,-109,-3,-92,-3,-68,-3,-48,-3,-21,-3,-1,-3,29,-2,46,-2,80,-2,99,-2,-124,-2,-101,-2,-73,-2,-44,-2,-16,-2,12,-1,43,-1,71,-1,100,-1,-125,-1,-99,-1,-65,-1,-38,-1,-6,-1,22,0,53,0,80,0,114,0,-117,0,-85,0,-58,0,-29,0,0,1,28,1,55,1,83,1,110,1,-122,1,-94,1,-72,1,-42,1,-25,1,5,2,22,2,47,2,68,2,86,2,109,2,125,2,-112,2,-93,2,-81,2,-62,2,-49,2,-36,2,-22,2,-11,2,-1,2,10,3,18,3,27,3,30,3,41,3,40,3,47,3,50,3,49,3,52,3,49,3,50,3,44,3,45,3,35,3,34,3,23,3,20,3,6,3,0,3,-12,2,-23,2,-36,2,-49,2,-65,2,-77,2,-97,2,-108,2,121,2,114,2,82,2,75,2,44,2,29,2,2,2,-16,1,-44,1,-63,1,-91,1,-116,1,118,1,85,1,67,1,33,1,13,1,-20,0,-45,0,-74,0,-100,0,125,0,101,0,66,0,44,0,11,0,-14,-1,-45,-1,-72,-1,-102,-1,-127,-1,96,-1,72,-1,45,-1,14,-1,-6,-2,-40,-2,-62,-2,-87,-2,-115,-2,121,-2,91,-2,71,-2,48,-2,25,-2,5,-2,-21,-3,-35,-3,-61,-3,-73,-3,-96,-3,-113,-3,-127,-3,109,-3,98,-3,82,-3,70,-3,56,-3,48,-3,33,-3,28,-3,16,-3,12,-3,1,-3,1,-3,-9,-4,-9,-4,-13,-4,-16,-4,-13,-4,-17,-4,-12,-4,-12,-4,-7,-4,-4,-4,1,-3,9,-3,14,-3,25,-3,31,-3,43,-3,53,-3,65,-3,78,-3,92,-3,104,-3,122,-3,-119,-3,-103,-3,-84,-3,-65,-3,-49,-3,-24,-3,-12,-3,18,-2,33,-2,60,-2,79,-2,104,-2,127,-2,-103,-2,-80,-2,-55,-2,-29,-2,-3,-2,23,-1,49,-1,76,-1,100,-1,-123,-1,-103,-1,-68,-1,-50,-1,-12,-1,7,0,38,0,65,0,88,0,123,0,-115,0,-81,0,-62,0,-29,0,-10,0,22,1,41,1,70,1,91,1,116,1,-115,1,-98,1,-66,1,-54,1,-28,1,-9,1,9,2,31,2,48,2,64,2,83,2,96,2,116,2,125,2,-113,2,-104,2,-90,2,-79,2,-69,2,-62,2,-49,2,-48,2,-35,2,-33,2,-29,2,-22,2,-23,2,-19,2,-19,2,-19,2,-20,2,-22,2,-25,2,-29,2,-35,2,-38,2,-48,2,-53,2,-62,2,-73,2,-82,2,-92,2,-108,2,-115,2,121,2,112,2,94,2,79,2,61,2,46,2,26,2,8,2,-10,1,-34,1,-50,1,-75,1,-92,1,-119,1,118,1,91,1,72,1,42,1,25,1,-6,0,-27,0,-53,0,-80,0,-103,0,125,0,101,0,74,0,47,0,23,0,-5,-1,-29,-1,-56,-1,-83,-1,-107,-1,122,-1,98,-1,72,-1,47,-1,23,-1,-3,-2,-26,-2,-50,-2,-73,-2,-94,-2,-120,-2,118,-2,94,-2,75,-2,54,-2,36,-2,14,-2,0,-2,-23,-3,-33,-3,-56,-3,-66,-3,-85,-3,-95,-3,-113,-3,-120,-3,119,-3,114,-3,100,-3,93,-3,85,-3,75,-3,74,-3,62,-3,63,-3,56,-3,54,-3,54,-3,50,-3,52,-3,52,-3,54,-3,57,-3,60,-3,66,-3,68,-3,79,-3,81,-3,94,-3,99,-3,110,-3,120,-3,-123,-3}; }
	private static byte[] data12(){ return new byte[] {-113,-3,-98,-3,-88,-3,-71,-3,-55,-3,-41,-3,-23,-3,-8,-3,9,-2,33,-2,45,-2,71,-2,87,-2,110,-2,-128,-2,-103,-2,-84,-2,-59,-2,-36,-2,-17,-2,12,-1,31,-1,58,-1,82,-1,104,-1,-124,-1,-103,-1,-73,-1,-55,-1,-22,-1,-3,-1,26,0,47,0,76,0,94,0,-127,0,-114,0,-80,0,-64,0,-36,0,-14,0,9,1,33,1,52,1,77,1,97,1,118,1,-117,1,-98,1,-79,1,-57,1,-45,1,-19,1,-9,1,11,2,26,2,38,2,56,2,68,2,81,2,93,2,102,2,115,2,124,2,-123,2,-116,2,-108,2,-104,2,-95,2,-93,2,-88,2,-85,2,-85,2,-82,2,-83,2,-82,2,-86,2,-85,2,-93,2,-91,2,-102,2,-103,2,-114,2,-117,2,127,2,121,2,108,2,100,2,87,2,76,2,62,2,50,2,32,2,23,2,0,2,-10,1,-31,1,-45,1,-66,1,-83,1,-103,1,-122,1,113,1,95,1,70,1,52,1,28,1,8,1,-16,0,-37,0,-63,0,-82,0,-111,0,127,0,99,0,80,0,53,0,28,0,8,0,-21,-1,-39,-1,-66,-1,-91,-1,-111,-1,119,-1,97,-1,76,-1,47,-1,33,-1,4,-1,-15,-2,-37,-2,-56,-2,-80,-2,-95,-2,-122,-2,122,-2,99,-2,84,-2,64,-2,47,-2,33,-2,14,-2,4,-2,-16,-3,-26,-3,-41,-3,-52,-3,-64,-3,-75,-3,-85,-3,-95,-3,-101,-3,-113,-3,-116,-3,-125,-3,127,-3,123,-3,119,-3,114,-3,117,-3,108,-3,116,-3,110,-3,116,-3,115,-3,120,-3,121,-3,-127,-3,-125,-3,-115,-3,-111,-3,-102,-3,-94,-3,-84,-3,-75,-3,-63,-3,-53,-3,-40,-3,-26,-3,-15,-3,2,-2,14,-2,33,-2,43,-2,68,-2,77,-2,101,-2,116,-2,-123,-2,-99,-2,-84,-2,-61,-2,-42,-2,-20,-2,1,-1,20,-1,45,-1,62,-1,91,-1,107,-1,-122,-1,-103,-1,-77,-1,-58,-1,-30,-1,-14,-1,16,0,33,0,59,0,82,0,101,0,-127,0,-110,0,-85,0,-64,0,-45,0,-18,0,-5,0,24,1,36,1,61,1,79,1,97,1,118,1,-125,1,-103,1,-87,1,-73,1,-53,1,-44,1,-24,1,-12,1,1,2,14,2,26,2,36,2,50,2,54,2,69,2,73,2,83,2,89,2,95,2,100,2,106,2,107,2,112,2,114,2,114,2,116,2,115,2,113,2,113,2,109,2,106,2,102,2,97,2,91,2,84,2,78,2,67,2,64,2,48,2,43,2,28,2,20,2,6,2,-8,1,-18,1,-36,1,-48,1,-65,1,-79,1,-98,1,-110,1,122,1,111,1,87,1,73,1,51,1,32,1,14,1,-9,0,-26,0,-48,0,-71,0,-89,0,-112,0,123,0,103,0,78,0,58,0,37,0,12,0,-7,-1,-30,-1,-52,-1,-71,-1,-98,-1,-114,-1,118,-1,98,-1,78,-1,54,-1,37,-1,16,-1,-3,-2,-24,-2,-41,-2,-61,-2,-79,-2,-97,-2,-115,-2,-128,-2,107,-2,96,-2,75,-2,66,-2,49,-2,37,-2,23,-2,11,-2,0,-2,-11,-3,-21,-3,-31,-3,-40,-3,-47,-3,-56,-3,-61,-3,-67,-3,-74,-3,-76,-3,-82,-3,-83,-3,-87,-3,-86,-3,-90,-3,-85,-3,-91,-3,-81,-3,-87,-3,-78,-3,-76,-3,-72,-3,-65,-3,-62,-3,-51,-3,-48,-3,-35,-3,-30,-3,-18,-3,-9,-3,4,-2,11,-2,29,-2,36,-2,55,-2,64,-2,82,-2,94,-2,112,-2,126,-2,-111,-2,-97,-2,-77,-2,-62,-2,-41,-2,-24,-2,-5,-2,15,-1,34,-1,53,-1,75,-1,91,-1,116,-1,-122,-1,-101,-1,-81,-1,-59,-1,-39,-1,-16,-1,2,0,23,0,47,0,64,0,87,0,108,0,124,0,-105,0,-91,0,-68,0,-50,0,-29,0,-11,0,7,1,26,1,42,1,63,1,77,1,94,1,111,1,125,1,-112,1,-102,1,-85,1,-74,1,-58,1,-49,1,-33,1,-26,1,-12,1,-5,1,7,2,11,2,26,2,26,2,38,2,39,2,48,2,50,2,56,2,56,2,60,2,62,2,60,2,65,2,57,2,65,2,53,2,58,2,50,2,47,2,43,2,35,2,29,2,25,2,13,2,9,2,-5,1,-10,1,-24,1,-32,1,-44,1,-59,1,-67,1,-86,1,-92,1,-113,1,-125,1,116,1,98,1,84,1,67,1,50,1,32,1,17,1,-6,0,-18,0,-42,0,-57,0,-78,0,-98,0,-114,0,119,0,102,0,79,0,63,0,39,0,22,0,0,0,-20,-1,-37,-1,-61,-1,-78,-1,-98,-1,-120,-1,122,-1,97,-1,83,-1,59,-1,46,-1,24,-1,9,-1,-10,-2,-27,-2,-45,-2,-59,-2,-76,-2,-91,-2,-108,-2,-120,-2,119,-2,109,-2,92,-2,83,-2,69,-2,58,-2,47,-2,38,-2,28,-2,18,-2,12,-2,-1,-3,0,-2,-14,-3,-13,-3,-24,-3,-25,-3,-29,-3,-33,-3}; }
	private static byte[] data13(){ return new byte[] {-33,-3,-38,-3,-36,-3,-37,-3,-37,-3,-35,-3,-34,-3,-30,-3,-28,-3,-24,-3,-19,-3,-13,-3,-8,-3,-1,-3,6,-2,14,-2,22,-2,34,-2,38,-2,55,-2,61,-2,75,-2,86,-2,99,-2,112,-2,125,-2,-115,-2,-105,-2,-83,-2,-77,-2,-51,-2,-45,-2,-20,-2,-8,-2,10,-1,28,-1,45,-1,63,-1,83,-1,98,-1,120,-1,-120,-1,-97,-1,-84,-1,-61,-1,-42,-1,-26,-1,-1,-1,11,0,36,0,50,0,74,0,89,0,110,0,126,0,-109,0,-93,0,-73,0,-57,0,-38,0,-22,0,-4,0,10,1,29,1,43,1,59,1,73,1,89,1,100,1,120,1,124,1,-110,1,-107,1,-89,1,-80,1,-70,1,-60,1,-50,1,-43,1,-33,1,-25,1,-22,1,-10,1,-11,1,0,2,0,2,6,2,8,2,10,2,12,2,13,2,13,2,13,2,13,2,8,2,11,2,1,2,4,2,-5,1,-6,1,-16,1,-18,1,-29,1,-32,1,-43,1,-52,1,-59,1,-71,1,-79,1,-91,1,-103,1,-114,1,-127,1,116,1,105,1,87,1,79,1,56,1,50,1,28,1,15,1,0,1,-19,0,-34,0,-52,0,-68,0,-85,0,-103,0,-123,0,120,0,97,0,83,0,63,0,42,0,29,0,8,0,-12,-1,-24,-1,-52,-1,-61,-1,-85,-1,-100,-1,-120,-1,122,-1,99,-1,90,-1,63,-1,57,-1,30,-1,24,-1,-1,-2,-9,-2,-30,-2,-40,-2,-57,-2,-69,-2,-86,-2,-96,-2,-110,-2,-121,-2,123,-2,111,-2,101,-2,92,-2,79,-2,74,-2,62,-2,58,-2,48,-2,42,-2,37,-2,28,-2,29,-2,19,-2,19,-2,16,-2,9,-2,15,-2,7,-2,12,-2,8,-2,11,-2,12,-2,15,-2,16,-2,21,-2,24,-2,29,-2,36,-2,37,-2,49,-2,51,-2,63,-2,69,-2,77,-2,88,-2,96,-2,107,-2,120,-2,125,-2,-109,-2,-108,-2,-86,-2,-79,-2,-64,-2,-49,-2,-34,-2,-23,-2,-3,-2,5,-1,29,-1,38,-1,59,-1,72,-1,89,-1,108,-1,121,-1,-113,-1,-102,-1,-77,-1,-67,-1,-44,-1,-31,-1,-9,-1,6,0,24,0,40,0,60,0,75,0,93,0,111,0,125,0,-111,0,-97,0,-80,0,-62,0,-50,0,-32,0,-16,0,-4,0,14,1,24,1,43,1,52,1,68,1,78,1,91,1,105,1,112,1,126,1,-121,1,-111,1,-101,1,-94,1,-85,1,-77,1,-70,1,-64,1,-57,1,-54,1,-46,1,-46,1,-37,1,-40,1,-32,1,-35,1,-31,1,-31,1,-33,1,-31,1,-34,1,-35,1,-38,1,-41,1,-45,1,-48,1,-55,1,-59,1,-65,1,-73,1,-77,1,-88,1,-96,1,-103,1,-114,1,-121,1,122,1,112,1,101,1,90,1,78,1,65,1,51,1,41,1,24,1,13,1,-3,0,-18,0,-30,0,-49,0,-61,0,-80,0,-92,0,-111,0,-125,0,113,0,98,0,80,0,66,0,46,0,32,0,13,0,-2,-1,-20,-1,-34,-1,-55,-1,-67,-1,-88,-1,-100,-1,-118,-1,120,-1,109,-1,88,-1,76,-1,60,-1,43,-1,34,-1,12,-1,7,-1,-16,-2,-22,-2,-38,-2,-50,-2,-62,-2,-76,-2,-83,-2,-97,-2,-105,-2,-118,-2,-125,-2,121,-2,112,-2,107,-2,94,-2,94,-2,82,-2,80,-2,73,-2,69,-2,64,-2,61,-2,59,-2,54,-2,57,-2,50,-2,55,-2,50,-2,54,-2,53,-2,57,-2,56,-2,62,-2,64,-2,69,-2,72,-2,79,-2,81,-2,92,-2,96,-2,104,-2,112,-2,119,-2,-128,-2,-117,-2,-110,-2,-97,-2,-88,-2,-79,-2,-63,-2,-56,-2,-39,-2,-31,-2,-14,-2,-4,-2,12,-1,24,-1,39,-1,53,-1,68,-1,83,-1,97,-1,114,-1,127,-1,-111,-1,-96,-1,-82,-1,-64,-1,-48,-1,-34,-1,-16,-1,0,0,14,0,34,0,45,0,63,0,80,0,93,0,112,0,123,0,-113,0,-103,0,-85,0,-71,0,-58,0,-42,0,-30,0,-16,0,-2,0,9,1,23,1,34,1,46,1,58,1,69,1,78,1,89,1,99,1,106,1,118,1,123,1,-124,1,-117,1,-109,1,-106,1,-97,1,-94,1,-89,1,-84,1,-82,1,-79,1,-75,1,-76,1,-70,1,-76,1,-69,1,-74,1,-74,1,-75,1,-76,1,-83,1,-78,1,-92,1,-87,1,-98,1,-100,1,-108,1,-111,1,-123,1,-125,1,121,1,110,1,109,1,88,1,91,1,71,1,66,1,53,1,43,1,31,1,19,1,5,1,-4,0,-21,0,-28,0,-51,0,-55,0,-76,0,-85,0,-102,0,-118,0,127,0,108,0,98,0,76,0,68,0,48,0,35,0,19,0,4,0,-13,-1,-25,-1,-44,-1,-56,-1,-73,-1,-87,-1,-103,-1,-116,-1,125,-1,109,-1,97,-1,80,-1,70,-1,54,-1,43,-1,28,-1,15,-1,6,-1,-10,-2,-18,-2,-31,-2,-43,-2,-51,-2}; }
	private static byte[] data14(){ return new byte[] {-63,-2,-72,-2,-80,-2,-92,-2,-96,-2,-108,-2,-113,-2,-120,-2,-128,-2,124,-2,117,-2,112,-2,109,-2,103,-2,102,-2,96,-2,97,-2,93,-2,91,-2,93,-2,91,-2,90,-2,95,-2,90,-2,100,-2,94,-2,104,-2,102,-2,110,-2,113,-2,117,-2,125,-2,127,-2,-118,-2,-116,-2,-102,-2,-102,-2,-87,-2,-84,-2,-70,-2,-64,-2,-51,-2,-44,-2,-31,-2,-21,-2,-9,-2,2,-1,14,-1,27,-1,38,-1,55,-1,61,-1,83,-1,88,-1,109,-1,117,-1,-121,-1,-109,-1,-93,-1,-80,-1,-66,-1,-49,-1,-37,-1,-20,-1,-8,-1,9,0,22,0,38,0,52,0,64,0,85,0,92,0,111,0,122,0,-119,0,-106,0,-91,0,-81,0,-64,0,-56,0,-38,0,-33,0,-14,0,-8,0,6,1,17,1,26,1,37,1,47,1,54,1,67,1,71,1,83,1,90,1,94,1,105,1,107,1,117,1,119,1,127,1,-128,1,-122,1,-119,1,-116,1,-115,1,-109,1,-115,1,-106,1,-112,1,-108,1,-111,1,-112,1,-113,1,-116,1,-117,1,-122,1,-126,1,-128,1,121,1,118,1,110,1,107,1,96,1,96,1,79,1,81,1,66,1,61,1,50,1,40,1,32,1,21,1,12,1,-1,0,-11,0,-23,0,-34,0,-46,0,-58,0,-72,0,-83,0,-97,0,-108,0,-124,0,120,0,107,0,92,0,79,0,67,0,47,0,42,0,19,0,11,0,-6,-1,-18,-1,-35,-1,-44,-1,-65,-1,-70,-1,-92,-1,-99,-1,-115,-1,126,-1,117,-1,100,-1,91,-1,77,-1,64,-1,54,-1,40,-1,31,-1,17,-1,9,-1,-2,-2,-13,-2,-22,-2,-33,-2,-39,-2,-50,-2,-57,-2,-66,-2,-73,-2,-78,-2,-87,-2,-92,-2,-98,-2,-103,-2,-109,-2,-109,-2,-119,-2,-116,-2,-125,-2,-123,-2,-126,-2,127,-2,-126,-2,123,-2,-125,-2,125,-2,-125,-2,-128,-2,-122,-2,-124,-2,-115,-2,-117,-2,-110,-2,-107,-2,-103,-2,-95,-2,-91,-2,-85,-2,-76,-2,-75,-2,-59,-2,-59,-2,-47,-2,-37,-2,-33,-2,-18,-2,-13,-2,-2,-2,11,-1,17,-1,34,-1,37,-1,57,-1,62,-1,78,-1,87,-1,103,-1,112,-1,-128,-1,-118,-1,-106,-1,-88,-1,-80,-1,-64,-1,-51,-1,-40,-1,-23,-1,-12,-1,2,0,16,0,28,0,42,0,57,0,66,0,84,0,93,0,108,0,120,0,-124,0,-111,0,-97,0,-89,0,-74,0,-65,0,-53,0,-41,0,-32,0,-19,0,-13,0,1,1,6,1,18,1,27,1,33,1,44,1,48,1,58,1,63,1,71,1,75,1,83,1,84,1,95,1,91,1,102,1,101,1,104,1,111,1,105,1,115,1,108,1,114,1,112,1,112,1,111,1,109,1,108,1,105,1,103,1,101,1,92,1,96,1,83,1,85,1,77,1,68,1,69,1,53,1,57,1,39,1,39,1,25,1,22,1,10,1,2,1,-9,0,-17,0,-28,0,-39,0,-48,0,-59,0,-73,0,-78,0,-99,0,-101,0,-119,0,127,0,115,0,101,0,91,0,76,0,66,0,50,0,41,0,24,0,16,0,-3,-1,-9,-1,-29,-1,-34,-1,-53,-1,-62,-1,-77,-1,-86,-1,-102,-1,-111,-1,-126,-1,120,-1,109,-1,97,-1,84,-1,76,-1,62,-1,55,-1,42,-1,34,-1,22,-1,15,-1,5,-1,-5,-2,-11,-2,-22,-2,-26,-2,-35,-2,-44,-2,-46,-2,-58,-2,-58,-2,-66,-2,-72,-2,-74,-2,-80,-2,-83,-2,-86,-2,-89,-2,-91,-2,-94,-2,-93,-2,-98,-2,-93,-2,-100,-2,-92,-2,-99,-2,-90,-2,-96,-2,-88,-2,-89,-2,-83,-2,-83,-2,-76,-2,-75,-2,-66,-2,-66,-2,-56,-2,-53,-2,-46,-2,-38,-2,-35,-2,-22,-2,-19,-2,-8,-2,-1,-2,7,-1,19,-1,24,-1,37,-1,46,-1,54,-1,69,-1,72,-1,93,-1,93,-1,114,-1,117,-1,-122,-1,-112,-1,-99,-1,-91,-1,-72,-1,-69,-1,-47,-1,-44,-1,-24,-1,-18,-1,0,0,6,0,23,0,34,0,45,0,60,0,67,0,84,0,92,0,107,0,115,0,-126,0,-119,0,-102,0,-99,0,-81,0,-76,0,-63,0,-55,0,-43,0,-37,0,-25,0,-18,0,-9,0,0,1,5,1,14,1,22,1,28,1,33,1,42,1,42,1,54,1,55,1,58,1,67,1,65,1,73,1,72,1,76,1,78,1,78,1,83,1,78,1,83,1,79,1,81,1,79,1,78,1,75,1,74,1,69,1,69,1,62,1,61,1,55,1,50,1,46,1,40,1,33,1,28,1,22,1,13,1,8,1,-2,0,-9,0,-15,0,-27,0,-34,0,-43,0,-54,0,-60,0,-74,0,-82,0,-93,0,-102,0,-115,0,-123,0,118,0,111,0,98,0,85,0,77,0,62,0,54,0,40,0,28,0,17,0,6,0,-7,-1,-17,-1,-31,-1,-41,-1,-53,-1,-66,-1}; }
	private static byte[] data15(){ return new byte[] {-75,-1,-87,-1,-100,-1,-108,-1,-122,-1,125,-1,116,-1,102,-1,96,-1,82,-1,76,-1,63,-1,57,-1,47,-1,36,-1,33,-1,18,-1,16,-1,6,-1,-3,-2,-5,-2,-16,-2,-20,-2,-26,-2,-32,-2,-37,-2,-40,-2,-47,-2,-48,-2,-54,-2,-55,-2,-60,-2,-60,-2,-63,-2,-65,-2,-64,-2,-68,-2,-65,-2,-67,-2,-65,-2,-66,-2,-61,-2,-64,-2,-58,-2,-58,-2,-53,-2,-51,-2,-45,-2,-46,-2,-35,-2,-36,-2,-26,-2,-24,-2,-15,-2,-13,-2,-1,-2,1,-1,12,-1,17,-1,26,-1,35,-1,40,-1,54,-1,57,-1,71,-1,78,-1,87,-1,99,-1,107,-1,118,-1,-128,-1,-116,-1,-109,-1,-94,-1,-86,-1,-75,-1,-61,-1,-54,-1,-41,-1,-29,-1,-19,-1,-6,-1,3,0,16,0,25,0,39,0,48,0,60,0,71,0,80,0,93,0,102,0,115,0,122,0,-123,0,-112,0,-103,0,-93,0,-84,0,-76,0,-64,0,-58,0,-49,0,-42,0,-32,0,-27,0,-17,0,-12,0,-6,0,4,1,3,1,17,1,14,1,26,1,26,1,32,1,35,1,40,1,39,1,48,1,44,1,50,1,50,1,51,1,53,1,51,1,54,1,49,1,55,1,45,1,54,1,41,1,48,1,37,1,41,1,32,1,33,1,25,1,21,1,18,1,10,1,7,1,-1,0,-6,0,-12,0,-22,0,-23,0,-39,0,-38,0,-52,0,-58,0,-66,0,-76,0,-84,0,-92,0,-105,0,-111,0,-121,0,121,0,118,0,100,0,98,0,80,0,76,0,59,0,55,0,39,0,33,0,16,0,13,0,-5,-1,-10,-1,-23,-1,-36,-1,-43,-1,-55,-1,-65,-1,-76,-1,-86,-1,-96,-1,-107,-1,-115,-1,-127,-1,121,-1,112,-1,101,-1,93,-1,86,-1,74,-1,70,-1,57,-1,53,-1,44,-1,37,-1,31,-1,23,-1,17,-1,11,-1,5,-1,0,-1,-5,-2,-10,-2,-14,-2,-19,-2,-21,-2,-27,-2,-26,-2,-33,-2,-32,-2,-36,-2,-36,-2,-38,-2,-38,-2,-39,-2,-40,-2,-37,-2,-39,-2,-37,-2,-34,-2,-35,-2,-30,-2,-30,-2,-25,-2,-23,-2,-18,-2,-15,-2,-12,-2,-4,-2,-3,-2,7,-1,7,-1,19,-1,19,-1,32,-1,32,-1,45,-1,47,-1,60,-1,64,-1,73,-1,82,-1,90,-1,99,-1,107,-1,117,-1,125,-1,-118,-1,-114,-1,-100,-1,-93,-1,-81,-1,-71,-1,-64,-1,-50,-1,-42,-1,-33,-1,-17,-1,-16,-1,5,0,6,0,22,0,30,0,40,0,51,0,61,0,69,0,82,0,89,0,100,0,111,0,115,0,-126,0,-121,0,-110,0,-100,0,-97,0,-82,0,-80,0,-68,0,-64,0,-53,0,-49,0,-40,0,-35,0,-30,0,-22,0,-16,0,-15,0,-3,0,-7,0,5,1,4,1,10,1,13,1,14,1,19,1,20,1,22,1,25,1,23,1,27,1,24,1,29,1,25,1,25,1,25,1,21,1,24,1,17,1,19,1,13,1,10,1,10,1,1,1,3,1,-7,0,-8,0,-15,0,-19,0,-26,0,-29,0,-40,0,-41,0,-53,0,-55,0,-66,0,-71,0,-80,0,-87,0,-96,0,-103,0,-114,0,-119,0,125,0,118,0,108,0,99,0,90,0,81,0,69,0,61,0,52,0,41,0,34,0,19,0,15,0,-1,-1,-4,-1,-20,-1,-24,-1,-40,-1,-44,-1,-58,-1,-64,-1,-75,-1,-86,-1,-91,-1,-105,-1,-110,-1,-122,-1,-128,-1,117,-1,113,-1,99,-1,97,-1,84,-1,81,-1,71,-1,66,-1,56,-1,55,-1,42,-1,43,-1,32,-1,30,-1,23,-1,19,-1,14,-1,11,-1,6,-1,3,-1,0,-1,-4,-2,-4,-2,-11,-2,-6,-2,-16,-2,-8,-2,-16,-2,-12,-2,-16,-2,-11,-2,-18,-2,-7,-2,-16,-2,-6,-2,-9,-2,-6,-2,-2,-2,-1,-2,3,-1,9,-1,7,-1,18,-1,17,-1,24,-1,30,-1,32,-1,42,-1,44,-1,52,-1,58,-1,64,-1,73,-1,76,-1,88,-1,91,-1,103,-1,107,-1,119,-1,122,-1,-119,-1,-116,-1,-105,-1,-95,-1,-89,-1,-77,-1,-70,-1,-62,-1,-48,-1,-44,-1,-31,-1,-24,-1,-13,-1,-5,-1,6,0,13,0,26,0,31,0,45,0,50,0,62,0,71,0,76,0,90,0,96,0,105,0,115,0,120,0,-126,0,-117,0,-112,0,-100,0,-99,0,-85,0,-84,0,-73,0,-69,0,-62,0,-55,0,-51,0,-45,0,-39,0,-34,0,-32,0,-22,0,-27,0,-12,0,-19,0,-9,0,-9,0,-7,0,-2,0,-4,0,0,1,1,1,1,1,3,1,1,1,3,1,1,1,1,1,0,1,-1,0,-5,0,-3,0,-10,0,-9,0,-14,0,-17,0,-20,0,-24,0,-29,0,-32,0,-39,0,-41,0,-49,0,-53,0,-60,0,-65,0,-71,0,-80,0,-82,0,-95,0,-97,0,-106,0,-116,0,-117,0,122,0,122,0,109,0,103,0}; }
	private static byte[] data16(){ return new byte[] {94,0,87,0,74,0,71,0,57,0,52,0,42,0,32,0,25,0,12,0,9,0,-7,-1,-8,-1,-25,-1,-27,-1,-42,-1,-45,-1,-59,-1,-63,-1,-76,-1,-79,-1,-94,-1,-96,-1,-109,-1,-114,-1,-122,-1,125,-1,118,-1,111,-1,103,-1,98,-1,89,-1,85,-1,76,-1,73,-1,65,-1,60,-1,55,-1,50,-1,45,-1,42,-1,34,-1,35,-1,27,-1,27,-1,22,-1,20,-1,18,-1,14,-1,15,-1,11,-1,11,-1,10,-1,9,-1,9,-1,10,-1,8,-1,11,-1,11,-1,12,-1,14,-1,17,-1,17,-1,21,-1,23,-1,26,-1,31,-1,33,-1,38,-1,41,-1,47,-1,50,-1,57,-1,60,-1,68,-1,72,-1,78,-1,85,-1,91,-1,97,-1,105,-1,110,-1,120,-1,124,-1,-121,-1,-117,-1,-107,-1,-97,-1,-95,-1,-80,-1,-79,-1,-63,-1,-61,-1,-47,-1,-46,-1,-29,-1,-28,-1,-13,-1,-8,-1,0,0,12,0,16,0,29,0,35,0,43,0,54,0,58,0,73,0,72,0,91,0,87,0,106,0,105,0,118,0,123,0,-126,0,-118,0,-113,0,-103,0,-101,0,-91,0,-87,0,-81,0,-74,0,-71,0,-64,0,-60,0,-55,0,-51,0,-47,0,-43,0,-39,0,-36,0,-34,0,-30,0,-28,0,-28,0,-21,0,-26,0,-20,0,-20,0,-22,0,-17,0,-23,0,-18,0,-21,0,-22,0,-21,0,-26,0,-26,0,-26,0,-32,0,-33,0,-34,0,-42,0,-39,0,-49,0,-49,0,-54,0,-60,0,-62,0,-70,0,-74,0,-78,0,-86,0,-90,0,-97,0,-104,0,-109,0,-116,0,-125,0,-128,0,118,0,112,0,105,0,94,0,91,0,81,0,74,0,66,0,56,0,50,0,42,0,33,0,25,0,18,0,6,0,3,0,-11,-1,-13,-1,-26,-1,-32,-1,-41,-1,-49,-1,-56,-1,-64,-1,-71,-1,-83,-1,-85,-1,-97,-1,-100,-1,-111,-1,-114,-1,-128,-1,-124,-1,113,-1,118,-1,104,-1,101,-1,97,-1,86,-1,86,-1,78,-1,74,-1,70,-1,64,-1,61,-1,56,-1,53,-1,50,-1,46,-1,44,-1,41,-1,37,-1,39,-1,33,-1,34,-1,32,-1,30,-1,32,-1,29,-1,30,-1,32,-1,28,-1,34,-1,30,-1,36,-1,34,-1,39,-1,38,-1,44,-1,44,-1,47,-1,53,-1,51,-1,63,-1,58,-1,70,-1,69,-1,76,-1,82,-1,84,-1,93,-1,96,-1,102,-1,111,-1,112,-1,124,-1,124,-1,-119,-1,-118,-1,-105,-1,-103,-1,-94,-1,-86,-1,-81,-1,-70,-1,-66,-1,-55,-1,-50,-1,-41,-1,-32,-1,-28,-1,-15,-1,-12,-1,0,0,4,0,16,0,19,0,32,0,36,0,44,0,55,0,56,0,72,0,72,0,83,0,91,0,93,0,108,0,106,0,119,0,123,0,-128,0,-118,0,-116,0,-108,0,-104,0,-96,0,-94,0,-87,0,-82,0,-80,0,-73,0,-69,0,-68,0,-60,0,-61,0,-55,0,-55,0,-48,0,-50,0,-46,0,-44,0,-45,0,-40,0,-43,0,-38,0,-42,0,-38,0,-42,0,-38,0,-44,0,-38,0,-47,0,-43,0,-47,0,-49,0,-50,0,-54,0,-56,0,-61,0,-60,0,-69,0,-67,0,-77,0,-76,0,-84,0,-87,0,-92,0,-98,0,-102,0,-108,0,-115,0,-118,0,-127,0,126,0,117,0,111,0,106,0,97,0,92,0,83,0,79,0,69,0,64,0,54,0,49,0,41,0,33,0,28,0,15,0,15,0,-1,-1,-1,-1,-13,-1,-19,-1,-26,-1,-35,-1,-42,-1,-48,-1,-57,-1,-62,-1,-71,-1,-77,-1,-84,-1,-92,-1,-95,-1,-107,-1,-107,-1,-120,-1,-120,-1,126,-1,122,-1,117,-1,108,-1,109,-1,97,-1,99,-1,89,-1,88,-1,82,-1,78,-1,76,-1,71,-1,68,-1,66,-1,61,-1,62,-1,57,-1,55,-1,56,-1,50,-1,54,-1,49,-1,50,-1,50,-1,49,-1,48,-1,52,-1,47,-1,55,-1,49,-1,55,-1,55,-1,57,-1,60,-1,62,-1,63,-1,69,-1,68,-1,76,-1,77,-1,80,-1,86,-1,88,-1,95,-1,98,-1,104,-1,107,-1,115,-1,117,-1,127,-1,127,-1,-116,-1,-118,-1,-105,-1,-102,-1,-97,-1,-85,-1,-86,-1,-72,-1,-70,-1,-62,-1,-53,-1,-49,-1,-40,-1,-33,-1,-28,-1,-17,-1,-13,-1,-4,-1,2,0,10,0,17,0,24,0,32,0,37,0,46,0,52,0,59,0,67,0,71,0,80,0,86,0,91,0,100,0,103,0,111,0,116,0,123,0,126,0,-122,0,-119,0,-112,0,-109,0,-103,0,-100,0,-94,0,-92,0,-86,0,-85,0,-78,0,-80,0,-71,0,-74,0,-67,0,-69,0,-63,0,-65,0,-60,0,-61,0,-61,0,-56,0,-62,0,-54,0,-61,0,-57,0,-60,0,-60,0,-59,0,-64,0,-62,0,-67,0,-67,0,-69,0,-73,0,-74,0,-78,0,-82,0,-83,0,-90,0}; }
	private static byte[] data17(){ return new byte[] {-89,0,-98,0,-99,0,-104,0,-111,0,-111,0,-121,0,-122,0,126,0,122,0,116,0,110,0,105,0,98,0,92,0,86,0,81,0,70,0,71,0,56,0,57,0,45,0,40,0,35,0,23,0,25,0,7,0,10,0,-4,-1,-5,-1,-17,-1,-20,-1,-30,-1,-36,-1,-38,-1,-54,-1,-50,-1,-65,-1,-67,-1,-74,-1,-83,-1,-85,-1,-93,-1,-99,-1,-104,-1,-111,-1,-115,-1,-121,-1,-126,-1,126,-1,118,-1,118,-1,109,-1,109,-1,100,-1,101,-1,95,-1,90,-1,92,-1,80,-1,87,-1,79,-1,76,-1,78,-1,71,-1,73,-1,71,-1,68,-1,69,-1,67,-1,67,-1,67,-1,67,-1,67,-1,66,-1,70,-1,68,-1,71,-1,71,-1,74,-1,74,-1,79,-1,78,-1,84,-1,83,-1,90,-1,89,-1,96,-1,97,-1,103,-1,105,-1,111,-1,114,-1,118,-1,125,-1,-128,-1,-123,-1,-116,-1,-113,-1,-106,-1,-100,-1,-97,-1,-88,-1,-84,-1,-77,-1,-71,-1,-66,-1,-58,-1,-53,-1,-45,-1,-41,-1,-32,-1,-28,-1,-18,-1,-16,-1,-4,-1,-4,-1,10,0,11,0,20,0,26,0,32,0,40,0,44,0,53,0,56,0,66,0,69,0,76,0,82,0,87,0,95,0,96,0,108,0,105,0,118,0,118,0,124,0,-125,0,-125,0,-117,0,-113,0,-113,0,-103,0,-105,0,-100,0,-93,0,-98,0,-86,0,-92,0,-83,0,-85,0,-82,0,-79,0,-81,0,-74,0,-81,0,-72,0,-78,0,-73,0,-76,0,-76,0,-73,0,-80,0,-72,0,-83,0,-75,0,-84,0,-81,0,-86,0,-85,0,-91,0,-89,0,-99,0,-94,0,-103,0,-103,0,-108,0,-113,0,-114,0,-122,0,-121,0,124,0,126,0,116,0,114,0,108,0,103,0,98,0,91,0,89,0,78,0,79,0,66,0,66,0,57,0,50,0,48,0,36,0,35,0,26,0,20,0,15,0,6,0,4,0,-7,-1,-9,-1,-19,-1,-23,-1,-30,-1,-35,-1,-43,-1,-47,-1,-55,-1,-60,-1,-65,-1,-73,-1,-75,-1,-86,-1,-85,-1,-96,-1,-97,-1,-105,-1,-108,-1,-114,-1,-118,-1,-122,-1,-128,-1,126,-1,121,-1,117,-1,113,-1,111,-1,107,-1,103,-1,103,-1,95,-1,99,-1,92,-1,92,-1,90,-1,88,-1,85,-1,89,-1,80,-1,89,-1,78,-1,87,-1,81,-1,83,-1,84,-1,83,-1,85,-1,86,-1,87,-1,87,-1,91,-1,92,-1,93,-1,97,-1,98,-1,100,-1,106,-1,106,-1,110,-1,114,-1,117,-1,120,-1,126,-1,-127,-1,-124,-1,-117,-1,-115,-1,-110,-1,-103,-1,-100,-1,-95,-1,-88,-1,-86,-1,-76,-1,-76,-1,-64,-1,-65,-1,-54,-1,-52,-1,-43,-1,-41,-1,-29,-1,-31,-1,-17,-1,-18,-1,-7,-1,-3,-1,3,0,10,0,15,0,20,0,30,0,30,0,43,0,42,0,52,0,55,0,64,0,65,0,75,0,77,0,83,0,90,0,92,0,98,0,105,0,105,0,114,0,115,0,122,0,123,0,-127,0,-123,0,-123,0,-114,0,-116,0,-111,0,-107,0,-107,0,-102,0,-102,0,-98,0,-99,0,-94,0,-95,0,-93,0,-92,0,-91,0,-92,0,-88,0,-93,0,-89,0,-90,0,-93,0,-89,0,-96,0,-91,0,-98,0,-94,0,-101,0,-99,0,-102,0,-106,0,-106,0,-112,0,-112,0,-115,0,-119,0,-124,0,-123,0,122,0,126,0,116,0,115,0,110,0,105,0,101,0,96,0,91,0,87,0,81,0,75,0,73,0,64,0,62,0,54,0,48,0,46,0,37,0,32,0,29,0,17,0,20,0,5,0,8,0,-7,-1,-3,-1,-18,-1,-16,-1,-26,-1,-31,-1,-37,-1,-40,-1,-49,-1,-52,-1,-58,-1,-65,-1,-66,-1,-76,-1,-76,-1,-87,-1,-86,-1,-95,-1,-96,-1,-103,-1,-105,-1,-112,-1,-114,-1,-118,-1,-123,-1,-124,-1,125,-1,126,-1,119,-1,119,-1,114,-1,114,-1,109,-1,109,-1,105,-1,107,-1,99,-1,107,-1,94,-1,104,-1,96,-1,100,-1,97,-1,97,-1,98,-1,97,-1,100,-1,97,-1,101,-1,100,-1,102,-1,104,-1,104,-1,107,-1,108,-1,113,-1,111,-1,118,-1,117,-1,122,-1,124,-1,-128,-1,-125,-1,-121,-1,-118,-1,-114,-1,-110,-1,-107,-1,-99,-1,-101,-1,-89,-1,-92,-1,-80,-1,-82,-1,-71,-1,-71,-1,-63,-1,-59,-1,-52,-1,-51,-1,-39,-1,-41,-1,-30,-1,-28,-1,-20,-1,-17,-1,-8,-1,-7,-1,3,0,5,0,13,0,15,0,26,0,26,0,35,0,38,0,44,0,50,0,54,0,61,0,63,0,71,0,73,0,80,0,84,0,87,0,94,0,95,0,103,0,104,0,109,0,112,0,117,0,119,0,124,0,124,0,-126,0,-125,0,-120,0,-122,0,-114,0,-119,0,-109,0,-115,0,-107,0,-111,0,-106,0,-107,0,-105,0,-106,0,-104,0}; }
	private static byte[] data18(){ return new byte[] {-104,0,-105,0,-104,0,-105,0,-106,0,-106,0,-107,0,-108,0,-111,0,-109,0,-116,0,-112,0,-118,0,-119,0,-121,0,-125,0,-126,0,127,0,122,0,123,0,112,0,119,0,104,0,112,0,97,0,102,0,91,0,91,0,85,0,81,0,77,0,70,0,68,0,61,0,58,0,52,0,48,0,40,0,40,0,27,0,33,0,15,0,21,0,7,0,8,0,-1,-1,-5,-1,-10,-1,-16,-1,-21,-1,-26,-1,-31,-1,-36,-1,-42,-1,-45,-1,-54,-1,-53,-1,-64,-1,-63,-1,-72,-1,-73,-1,-82,-1,-80,-1,-91,-1,-88,-1,-99,-1,-97,-1,-106,-1,-105,-1,-111,-1,-113,-1,-118,-1,-119,-1,-124,-1,-123,-1,126,-1,127,-1,122,-1,123,-1,119,-1,118,-1,117,-1,115,-1,114,-1,113,-1,112,-1,112,-1,112,-1,109,-1,113,-1,110,-1,112,-1,112,-1,112,-1,114,-1,115,-1,115,-1,117,-1,120,-1,119,-1,125,-1,121,-1,-126,-1,126,-1,-121,-1,-124,-1,-117,-1,-116,-1,-114,-1,-107,-1,-106,-1,-103,-1,-97,-1,-96,-1,-90,-1,-87,-1,-82,-1,-78,-1,-75,-1,-68,-1,-66,-1,-60,-1,-55,-1,-53,-1,-44,-1,-42,-1,-36,-1,-32,-1,-25,-1,-24,-1,-14,-1,-12,-1,-7,-1,0,0,2,0,11,0,12,0,20,0,23,0,29,0,34,0,38,0,44,0,47,0,54,0,56,0,63,0,66,0,70,0,76,0,79,0,82,0,89,0,88,0,97,0,97,0,102,0,106,0,106,0,113,0,112,0,120,0,116,0,126,0,119,0,-125,0,125,0,-124,0,-124,0,-124,0,-121,0,-120,0,-121,0,-117,0,-118,0,-119,0,-115,0,-120,0,-116,0,-118,0,-117,0,-120,0,-119,0,-120,0,-123,0,-121,0,-126,0,-126,0,-127,0,125,0,126,0,119,0,122,0,115,0,115,0,111,0,107,0,108,0,98,0,102,0,92,0,92,0,89,0,81,0,83,0,72,0,74,0,66,0,63,0,60,0,51,0,53,0,42,0,42,0,35,0,30,0,30,0,16,0,22,0,7,0,10,0,1,0,-3,-1,-6,-1,-14,-1,-15,-1,-25,-1,-24,-1,-33,-1,-35,-1,-40,-1,-47,-1,-47,-1,-57,-1,-56,-1,-64,-1,-65,-1,-73,-1,-72,-1,-83,-1,-78,-1,-90,-1,-86,-1,-97,-1,-93,-1,-103,-1,-101,-1,-105,-1,-111,-1,-109,-1,-114,-1,-118,-1,-115,-1,-124,-1,-120,-1,-125,-1,-125,-1,-127,-1,127,-1,126,-1,127,-1,122,-1,-128,-1,120,-1,126,-1,122,-1,123,-1,125,-1,122,-1,126,-1,126,-1,123,-1,-124,-1,123,-1,-121,-1,-128,-1,-121,-1,-123,-1,-117,-1,-118,-1,-114,-1,-113,-1,-109,-1,-108,-1,-101,-1,-105,-1,-95,-1,-97,-1,-89,-1,-91,-1,-81,-1,-84,-1,-75,-1,-74,-1,-69,-1,-65,-1,-61,-1,-57,-1,-53,-1,-47,-1,-46,-1,-37,-1,-38,-1,-27,-1,-30,-1,-18,-1,-19,-1,-11,-1,-8,-1,-4,-1,4,0,5,0,10,0,18,0,16,0,29,0,27,0,32,0,40,0,40,0,49,0,50,0,54,0,60,0,62,0,68,0,70,0,76,0,77,0,83,0,83,0,91,0,90,0,97,0,95,0,103,0,101,0,108,0,108,0,109,0,115,0,113,0,118,0,117,0,121,0,121,0,123,0,124,0,124,0,125,0,-128,0,123,0,-124,0,122,0,-126,0,125,0,127,0,126,0,126,0,123,0,124,0,122,0,122,0,119,0,118,0,116,0,114,0,113,0,110,0,107,0,106,0,103,0,99,0,99,0,92,0,93,0,88,0,84,0,83,0,76,0,75,0,72,0,65,0,66,0,55,0,60,0,46,0,52,0,39,0,41,0,33,0,31,0,25,0,22,0,17,0,12,0,9,0,3,0,0,0,-6,-1,-9,-1,-14,-1,-18,-1,-23,-1,-27,-1,-31,-1,-36,-1,-39,-1,-43,-1,-49,-1,-52,-1,-54,-1,-63,-1,-59,-1,-70,-1,-70,-1,-74,-1,-78,-1,-81,-1,-83,-1,-88,-1,-90,-1,-93,-1,-96,-1,-98,-1,-100,-1,-105,-1,-104,-1,-109,-1,-107,-1,-114,-1,-111,-1,-116,-1,-116,-1,-114,-1,-123,-1,-114,-1,-124,-1,-117,-1,-124,-1,-119,-1,-123,-1,-120,-1,-122,-1,-120,-1,-122,-1,-119,-1,-119,-1,-120,-1,-115,-1,-117,-1,-115,-1,-111,-1,-116,-1,-104,-1,-114,-1,-100,-1,-108,-1,-98,-1,-101,-1,-95,-1,-95,-1,-90,-1,-88,-1,-85,-1,-81,-1,-80,-1,-74,-1,-73,-1,-67,-1,-65,-1,-62,-1,-56,-1,-54,-1,-51,-1,-43,-1,-45,-1,-36,-1,-34,-1,-29,-1,-26,-1,-22,-1,-16,-1,-14,-1,-8,-1,-4,-1,-1,-1,5,0,9,0,10,0,19,0,20,0,25,0,29,0,34,0,35,0,44,0,42,0,51,0,51,0,57,0,59,0,64,0,67,0,69,0,75,0,75,0,82,0,81,0,86,0,89,0,90,0}; }
	private static byte[] data19(){ return new byte[] {95,0,95,0,98,0,101,0,103,0,103,0,107,0,107,0,109,0,112,0,110,0,114,0,113,0,114,0,117,0,113,0,119,0,114,0,117,0,116,0,115,0,117,0,114,0,113,0,117,0,107,0,116,0,107,0,109,0,108,0,105,0,103,0,102,0,99,0,98,0,95,0,93,0,89,0,88,0,84,0,83,0,78,0,76,0,72,0,69,0,67,0,63,0,57,0,59,0,47,0,54,0,40,0,44,0,35,0,34,0,28,0,27,0,19,0,19,0,11,0,11,0,4,0,2,0,-5,-1,-5,-1,-13,-1,-13,-1,-21,-1,-21,-1,-30,-1,-27,-1,-38,-1,-36,-1,-44,-1,-46,-1,-49,-1,-53,-1,-57,-1,-60,-1,-64,-1,-65,-1,-71,-1,-72,-1,-77,-1,-77,-1,-83,-1,-82,-1,-89,-1,-87,-1,-92,-1,-94,-1,-96,-1,-97,-1,-100,-1,-100,-1,-104,-1,-104,-1,-106,-1,-105,-1,-110,-1,-107,-1,-110,-1,-110,-1,-110,-1,-111,-1,-111,-1,-111,-1,-111,-1,-112,-1,-109,-1,-111,-1,-108,-1,-110,-1,-106,-1,-110,-1,-102,-1,-106,-1,-102,-1,-101,-1,-100,-1,-97,-1,-96,-1,-93,-1,-93,-1,-87,-1,-89,-1,-81,-1,-85,-1,-76,-1,-78,-1,-73,-1,-69,-1,-67,-1,-64,-1,-61,-1,-57,-1,-54,-1,-51,-1,-45,-1,-46,-1,-37,-1,-38,-1,-32,-1,-28,-1,-26,-1,-20,-1,-18,-1,-12,-1,-11,-1,-4,-1,-3,-1,3,0,5,0,12,0,11,0,20,0,20,0,25,0,30,0,31,0,38,0,38,0,44,0,46,0,51,0,54,0,56,0,60,0,63,0,67,0,67,0,75,0,72,0,79,0,79,0,82,0,86,0,86,0,89,0,91,0,93,0,95,0,98,0,95,0,103,0,96,0,106,0,101,0,105,0,104,0,104,0,107,0,105,0,108,0,104,0,108,0,105,0,105,0,108,0,101,0,108,0,99,0,105,0,100,0,101,0,97,0,97,0,97,0,91,0,95,0,87,0,90,0,84,0,85,0,79,0,80,0,76,0,72,0,73,0,64,0,68,0,59,0,62,0,52,0,55,0,46,0,47,0,43,0,37,0,37,0,30,0,29,0,25,0,19,0,19,0,13,0,9,0,9,0,-3,-1,4,0,-9,-1,-6,-1,-13,-1,-18,-1,-16,-1,-28,-1,-22,-1,-34,-1,-32,-1,-37,-1,-42,-1,-43,-1,-48,-1,-50,-1,-53,-1,-58,-1,-58,-1,-65,-1,-64,-1,-69,-1,-71,-1,-72,-1,-78,-1,-77,-1,-81,-1,-84,-1,-83,-1,-88,-1,-88,-1,-90,-1,-94,-1,-91,-1,-97,-1,-94,-1,-99,-1,-97,-1,-101,-1,-97,-1,-103,-1,-100,-1,-101,-1,-103,-1,-100,-1,-102,-1,-103,-1,-98,-1,-105,-1,-97,-1,-102,-1,-97,-1,-98,-1,-98,-1,-95,-1,-96,-1,-90,-1,-96,-1,-85,-1,-92,-1,-84,-1,-86,-1,-81,-1,-82,-1,-75,-1,-79,-1,-70,-1,-73,-1,-66,-1,-66,-1,-63,-1,-58,-1,-58,-1,-53,-1,-50,-1,-49,-1,-42,-1,-42,-1,-37,-1,-35,-1,-31,-1,-27,-1,-24,-1,-21,-1,-16,-1,-16,-1,-8,-1,-7,-1,-4,-1,2,0,4,0,6,0,14,0,12,0,20,0,20,0,27,0,25,0,37,0,29,0,43,0,39,0,46,0,46,0,53,0,51,0,60,0,56,0,65,0,61,0,72,0,66,0,74,0,74,0,76,0,80,0,80,0,83,0,84,0,86,0,89,0,87,0,93,0,90,0,94,0,92,0,97,0,93,0,98,0,96,0,96,0,99,0,95,0,99,0,95,0,100,0,94,0,97,0,96,0,93,0,96,0,91,0,93,0,90,0,90,0,87,0,87,0,84,0,83,0,82,0,79,0,76,0,76,0,73,0,69,0,71,0,62,0,65,0,61,0,55,0,57,0,50,0,50,0,47,0,41,0,41,0,35,0,36,0,28,0,29,0,22,0,22,0,16,0,14,0,11,0,5,0,6,0,-3,-1,1,0,-11,-1,-6,-1,-18,-1,-12,-1,-24,-1,-20,-1,-29,-1,-28,-1,-33,-1,-37,-1,-38,-1,-44,-1,-43,-1,-48,-1,-52,-1,-51,-1,-60,-1,-56,-1,-63,-1,-62,-1,-67,-1,-70,-1,-68,-1,-76,-1,-73,-1,-77,-1,-80,-1,-78,-1,-85,-1,-82,-1,-85,-1,-87,-1,-86,-1,-91,-1,-87,-1,-92,-1,-90,-1,-92,-1,-93,-1,-92,-1,-93,-1,-92,-1,-94,-1,-92,-1,-95,-1,-89,-1,-95,-1,-88,-1,-94,-1,-88,-1,-91,-1,-86,-1,-88,-1,-85,-1,-85,-1,-84,-1,-79,-1,-82,-1,-76,-1,-77,-1,-76,-1,-68,-1,-75,-1,-63,-1,-69,-1,-61,-1,-62,-1,-58,-1,-55,-1,-53,-1,-50,-1,-47,-1,-46,-1,-40,-1,-40,-1,-34,-1,-34,-1,-29,-1,-27,-1,-23,-1,-20,-1,-17,-1,-14,-1,-11,-1,-5,-1,-8,-1,4,0,-2,-1,9,0,7,0,13,0,15,0,19,0,21,0,24,0}; }
	private static byte[] data20(){ return new byte[] {30,0,28,0,37,0,34,0,40,0,45,0,42,0,52,0,46,0,57,0,54,0,59,0,62,0,60,0,68,0,65,0,72,0,69,0,75,0,73,0,78,0,78,0,79,0,82,0,82,0,82,0,87,0,82,0,90,0,85,0,87,0,90,0,86,0,91,0,88,0,89,0,89,0,88,0,90,0,87,0,88,0,87,0,85,0,88,0,82,0,85,0,81,0,82,0,79,0,79,0,76,0,74,0,75,0,70,0,70,0,68,0,63,0,66,0,59,0,59,0,57,0,52,0,53,0,47,0,47,0,42,0,42,0,36,0,36,0,30,0,31,0,24,0,25,0,18,0,18,0,12,0,14,0,3,0,9,0,-2,-1,0,0,-5,-1,-8,-1,-12,-1,-12,-1,-19,-1,-19,-1,-24,-1,-26,-1,-27,-1,-34,-1,-33,-1,-40,-1,-38,-1,-43,-1,-46,-1,-46,-1,-55,-1,-47,-1,-61,-1,-53,-1,-62,-1,-62,-1,-63,-1,-66,-1,-69,-1,-68,-1,-73,-1,-72,-1,-75,-1,-75,-1,-79,-1,-76,-1,-83,-1,-77,-1,-85,-1,-79,-1,-86,-1,-82,-1,-85,-1,-84,-1,-86,-1,-83,-1,-87,-1,-85,-1,-83,-1,-87,-1,-82,-1,-86,-1,-81,-1,-85,-1,-79,-1,-84,-1,-77,-1,-82,-1,-74,-1,-80,-1,-72,-1,-76,-1,-70,-1,-72,-1,-67,-1,-69,-1,-62,-1,-65,-1,-59,-1,-61,-1,-55,-1,-55,-1,-49,-1,-54,-1,-43,-1,-48,-1,-38,-1,-41,-1,-37,-1,-33,-1,-32,-1,-27,-1,-26,-1,-22,-1,-20,-1,-17,-1,-13,-1,-13,-1,-4,-1,-9,-1,2,0,-2,-1,6,0,5,0,12,0,11,0,17,0,19,0,19,0,27,0,25,0,31,0,33,0,34,0,38,0,42,0,41,0,47,0,47,0,50,0,54,0,53,0,57,0,60,0,59,0,66,0,60,0,70,0,65,0,72,0,69,0,74,0,72,0,77,0,73,0,80,0,75,0,82,0,76,0,83,0,78,0,83,0,79,0,84,0,78,0,85,0,78,0,84,0,78,0,83,0,77,0,81,0,78,0,77,0,78,0,75,0,74,0,74,0,71,0,73,0,66,0,71,0,62,0,68,0,59,0,64,0,55,0,60,0,51,0,55,0,48,0,49,0,45,0,43,0,40,0,39,0,34,0,35,0,28,0,28,0,25,0,21,0,21,0,16,0,13,0,11,0,8,0,5,0,3,0,-1,-1,-3,-1,-7,-1,-7,-1,-13,-1,-15,-1,-16,-1,-21,-1,-22,-1,-25,-1,-30,-1,-28,-1,-36,-1,-33,-1,-41,-1,-38,-1,-45,-1,-44,-1,-49,-1,-48,-1,-53,-1,-53,-1,-57,-1,-57,-1,-60,-1,-61,-1,-64,-1,-63,-1,-69,-1,-64,-1,-73,-1,-67,-1,-73,-1,-73,-1,-72,-1,-76,-1,-73,-1,-78,-1,-75,-1,-77,-1,-78,-1,-77,-1,-78,-1,-78,-1,-78,-1,-77,-1,-79,-1,-76,-1,-77,-1,-78,-1,-74,-1,-77,-1,-72,-1,-76,-1,-71,-1,-72,-1,-71,-1,-68,-1,-69,-1,-67,-1,-63,-1,-65,-1,-61,-1,-60,-1,-59,-1,-56,-1,-55,-1,-52,-1,-50,-1,-48,-1,-47,-1,-44,-1,-41,-1,-39,-1,-38,-1,-32,-1,-35,-1,-26,-1,-30,-1,-21,-1,-25,-1,-16,-1,-18,-1,-13,-1,-11,-1,-9,-1,-5,-1,-2,-1,-2,-1,5,0,2,0,12,0,7,0,17,0,13,0,21,0,19,0,26,0,25,0,31,0,28,0,37,0,32,0,43,0,38,0,43,0,46,0,45,0,52,0,50,0,52,0,57,0,55,0,59,0,60,0,62,0,63,0,64,0,67,0,64,0,72,0,66,0,72,0,70,0,72,0,72,0,74,0,73,0,74,0,73,0,76,0,73,0,77,0,72,0,76,0,72,0,76,0,72,0,73,0,72,0,71,0,71,0,70,0,68,0,68,0,66,0,66,0,64,0,61,0,63,0,58,0,58,0,57,0,53,0,53,0,52,0,45,0,51,0,40,0,46,0,38,0,39,0,36,0,32,0,33,0,26,0,29,0,21,0,23,0,19,0,14,0,17,0,7,0,11,0,5,0,3,0,2,0,-4,-1,-3,-1,-8,-1,-9,-1,-13,-1,-14,-1,-19,-1,-18,-1,-23,-1,-25,-1,-26,-1,-31,-1,-31,-1,-35,-1,-35,-1,-40,-1,-39,-1,-44,-1,-44,-1,-48,-1,-47,-1,-51,-1,-53,-1,-52,-1,-58,-1,-55,-1,-60,-1,-59,-1,-62,-1,-62,-1,-65,-1,-63,-1,-68,-1,-65,-1,-69,-1,-67,-1,-71,-1,-68,-1,-72,-1,-69,-1,-71,-1,-72,-1,-71,-1,-71,-1,-72,-1,-71,-1,-69,-1,-74,-1,-66,-1,-73,-1,-68,-1,-67,-1,-70,-1,-65,-1,-67,-1,-64,-1,-64,-1,-62,-1,-63,-1,-58,-1,-61,-1,-55,-1,-57,-1,-53,-1,-53,-1,-50,-1,-50,-1,-45,-1,-47,-1,-40,-1,-45,-1,-35,-1,-40,-1,-32,-1,-33,-1,-30,-1,-29,-1,-23,-1,-26,-1}; }
	private static byte[] data21(){ return new byte[] {-19,-1,-19,-1,-16,-1,-12,-1,-13,-1,-7,-1,-8,-1,-2,-1,-1,-1,0,0,6,0,5,0,8,0,14,0,10,0,20,0,16,0,21,0,25,0,23,0,30,0,28,0,33,0,35,0,35,0,40,0,39,0,43,0,44,0,46,0,48,0,51,0,49,0,55,0,52,0,58,0,57,0,57,0,61,0,60,0,63,0,63,0,62,0,66,0,64,0,68,0,65,0,68,0,66,0,69,0,68,0,68,0,69,0,66,0,70,0,67,0,68,0,68,0,64,0,69,0,64,0,66,0,63,0,63,0,63,0,61,0,60,0,59,0,57,0,58,0,54,0,53,0,53,0,49,0,51,0,45,0,46,0,44,0,40,0,41,0,36,0,37,0,32,0,34,0,26,0,29,0,24,0,22,0,23,0,15,0,17,0,14,0,9,0,12,0,3,0,6,0,0,0,1,0,-5,-1,-5,-1,-7,-1,-12,-1,-11,-1,-16,-1,-17,-1,-19,-1,-22,-1,-24,-1,-26,-1,-29,-1,-29,-1,-34,-1,-33,-1,-37,-1,-38,-1,-41,-1,-41,-1,-46,-1,-43,-1,-48,-1,-49,-1,-49,-1,-54,-1,-51,-1,-55,-1,-56,-1,-57,-1,-57,-1,-60,-1,-59,-1,-61,-1,-63,-1,-60,-1,-65,-1,-62,-1,-65,-1,-64,-1,-66,-1,-63,-1,-67,-1,-63,-1,-68,-1,-62,-1,-69,-1,-60,-1,-69,-1,-60,-1,-66,-1,-61,-1,-63,-1,-63,-1,-58,-1,-62,-1,-57,-1,-58,-1,-57,-1,-56,-1,-52,-1,-55,-1,-51,-1,-48,-1,-51,-1,-45,-1,-46,-1,-44,-1,-42,-1,-38,-1,-42,-1,-33,-1,-37,-1,-30,-1,-32,-1,-27,-1,-28,-1,-23,-1,-22,-1,-21,-1,-15,-1,-19,-1,-10,-1,-13,-1,-8,-1,-7,-1,-4,-1,-3,-1,3,0,0,0,6,0,8,0,7,0,15,0,11,0,17,0,19,0,19,0,24,0,23,0,27,0,29,0,31,0,32,0,34,0,37,0,38,0,40,0,41,0,43,0,46,0,45,0,49,0,48,0,50,0,54,0,50,0,57,0,54,0,55,0,60,0,55,0,62,0,57,0,62,0,59,0,63,0,60,0,63,0,62,0,62,0,63,0,61,0,63,0,63,0,61,0,62,0,61,0,60,0,61,0,60,0,58,0,60,0,55,0,58,0,54,0,56,0,53,0,51,0,53,0,46,0,52,0,41,0,43,0,37,0,31,0,34,0,24,0,26,0,21,0,17,0,17,0,13,0,11,0,9,0,7,0,6,0,3,0,3,0,2,0,0,0}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-04.wav. */
	public Drum04(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-04.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-04.wav. */
	private class LoopThread extends Thread {
		private Drum04 clip;
		private boolean looping = true;
		public LoopThread(Drum04 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-04.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-04.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-04.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-04.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-04.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}